> 백엔드 개발 > Golang > Go의 유형 변환은 멤버는 동일하지만 유형이 다른 구조체 간에 값을 복사할 수 있나요?

Go의 유형 변환은 멤버는 동일하지만 유형이 다른 구조체 간에 값을 복사할 수 있나요?

Patricia Arquette
풀어 주다: 2024-12-13 03:39:09
원래의
470명이 탐색했습니다.

Can Go's type conversion copy values between 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(foo라는 이름)의 인스턴스와 Bar(bar라는 이름)의 인스턴스가 주어지면 foo에서 bar로 값을 복사할 수 있나요?

유형 변환을 사용한 솔루션

Foo 및 Bar의 기본 유형이 구조체 태그를 제외하고는 동일하므로 유형 변환을 활용하여 유형을 변경할 수 있습니다. 여기에는 다음 단계가 포함됩니다.

  1. foo라는 이름의 Foo 유형 변수를 선언합니다.
  2. bar라는 이름의 Bar 유형 변수를 선언합니다.
  3. foo 값을 할당합니다. 유형을 사용하여 막대를 표시하려면 변환.
foo := Foo{Id: "123", Name: "Joe"}
bar := Bar(foo)
로그인 후 복사

Playground 예제

Go Playground에서 이 솔루션을 테스트할 수 있습니다:
https://go.dev/play /p/j5jL1XFs-zG

참고: 변환은 구조체 태그를 제외하고 기본 유형이 동일한 경우에만 작동합니다. 구조체 내의 맵, 슬라이스 또는 배열과 같은 복잡한 유형의 경우 값 복사에 대한 보다 자세한 접근 방식이 필요합니다.

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

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