동일한 멤버 및 변형 유형이 있는 구조체 복사
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!