> 백엔드 개발 > Golang > 멤버는 동일하지만 유형이 다른 Go 구조체 간에 데이터를 효율적으로 전송할 수 있는 방법은 무엇입니까?

멤버는 동일하지만 유형이 다른 Go 구조체 간에 데이터를 효율적으로 전송할 수 있는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-10 02:18:13
원래의
469명이 탐색했습니다.

How Can I Efficiently Transfer Data Between Go Structs with Identical Members but Different Types?

동일한 멤버 및 변형 유형이 있는 구조체 복사

Go에서는 멤버는 동일하지만 유형이 다른 구조체를 갖는 것은 드문 일이 아닙니다. 다음 예를 고려해 보십시오.

type Common struct {
    Gender int
    From   string
    To     string
}

type Foo struct {
    Id    string
    Name  string
    Extra Common
}

type Bar struct {
    Id    string
    Name  string
    Extra Common
}
로그인 후 복사

Foo 및 Bar의 인스턴스가 주어지면 어떻게 데이터를 한 곳에서 다른 곳으로 전송할 수 있습니까?

해결책: 변환

Foo와 Bar의 기본 유형은 구조체 태그를 제외하고 동일하므로 Go는 간단한 솔루션인 변환을 제공합니다. Foo 값을 Bar 유형으로 변환함으로써 Bar의 기존 데이터를 효과적으로 덮어씁니다. 코드는 다음과 같습니다.

foo := Foo{Id: "123", Name: "Joe"}
bar := Bar(foo)
로그인 후 복사

놀이터 예제에서 변환을 테스트해 보겠습니다. https://go.dev/play/p/1W3EXQVXVhS.

제한 사항

구조체를 제외하고 기본 유형이 동일한 경우에만 변환이 작동한다는 점에 주목할 가치가 있습니다. 태그. 기본 유형이 크게 다른 경우 전용 복사 기능을 만드는 것이 필요할 것입니다.

위 내용은 멤버는 동일하지만 유형이 다른 Go 구조체 간에 데이터를 효율적으로 전송할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿