>백엔드 개발 >Golang >Go에서 동일한 멤버이지만 유형이 다른 구조체를 어떻게 복제할 수 있나요?

Go에서 동일한 멤버이지만 유형이 다른 구조체를 어떻게 복제할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-11 18:47:14752검색

How Can I Duplicate a Struct with Equivalent Members but Dissimilar Types in Go?

같은 멤버와 다른 유형을 가진 구조체 복제

다음 시나리오를 고려해보세요. Foo와 Bar라는 두 개의 서로 다른 구조체가 있고 각각 동일한 속성을 가지고 있습니다. 멤버이지만 기본 유형이 다릅니다. 목표는 한 구조의 내용을 다른 구조로 전송하는 것입니다.

이 경우 다음 구조 정의를 고려하세요.

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의 foo 및 Bar의 인스턴스가 주어지면 어떻게 bar를 foo에서 복제할 수 있습니까?

해결책: 유형 변환

Foo와 Bar의 기본 유형은 구조적으로 동일하므로 유형 변환을 사용하여 객체 유형을 변경할 수 있습니다. 다음 코드는 변환을 사용하여 Foo 값을 Bar 값으로 복사하는 방법을 보여줍니다.

foo := Foo{Id: "123", Name: "Joe"}
bar := Bar(foo)

유형 호환성 참고

이 유형 변환 기술을 기억하는 것이 중요합니다. 구조의 기본 유형이 본질적으로 동일한 경우에만 효과적이며 구조 태그는 제외됩니다.

위 내용은 Go에서 동일한 멤버이지만 유형이 다른 구조체를 어떻게 복제할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.