임베디드 유형: 원시 임베딩의 유용성 탐색
Go 구조체를 사용할 때 기본 유형 임베딩 개념이 나타날 수 있습니다. 아래 코드 조각을 고려하세요.
type User struct { int32 Name string }
이 코드는 int32 기본 유형을 포함하는 User 구조체를 정의합니다. 그러나 이러한 임베딩의 유용성에 관한 질문이 발생합니다.
임베디드 프리미티브에 메서드가 있습니까?
아니요, int32와 같은 임베디드 프리미티브에는 이와 관련된 메서드가 없습니다. . 이를 확인하려면 리플렉션을 사용하여 사용 가능한 메서드 수를 검사할 수 있습니다.
fmt.Println(reflect.TypeOf(int32(0)).NumMethod())
출력은 0이 되며 이는 int32에 메서드가 없음을 나타냅니다.
Embedded Primitive 액세스 값
사용자 인스턴스 내에 포함된 int32 값에 액세스하려면 정규화되지 않은 값을 직접 사용할 수 있습니다. 필드 이름으로 이름 입력:
u := User{3, "Bob"} fmt.Printf("%#v\n", u) u.int32 = 4 fmt.Println(u.int32)
출력:
main.User{int32:3, Name:"Bob"} 4
삽입의 장점
기본 유형을 삽입하면 직접 제공되지 않을 수 있습니다. 메소드에 대한 액세스가 가능하므로 인터페이스와 메소드를 다룰 때 특정 이점을 제공합니다. 재정의.
미리 선언된 유형 삽입의 단점
int32와 같이 미리 선언된 유형을 삽입할 때 고려해야 할 단점이 있습니다.
위 내용은 Go에 내장된 기본 유형이 실제 이점을 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!