Go でのプリミティブ型の埋め込み: 詳細
カスタム型を構築するとき、int32 などのプリミティブ型を埋め込むという概念に遭遇することがあります。 。この手法は構造体やインターフェイスを埋め込むためによく使用されますが、プリミティブ型を埋め込むと特定の疑問が生じます。
int32 の埋め込みは有用ですか?
いいえ、int32 を直接埋め込むことはできません。通常のフィールドを使用する場合に比べて、すぐに利点が得られるわけではありません。 int32 は、メソッドやフィールドが関連付けられていないプリミティブ型です。
int32 にはユーザー インスタンスにアクセスできるメソッドがありますか?
いいえ、int32 にはメソッドがありません。これは、reflect パッケージを使用して確認できます。
fmt.Println(reflect.TypeOf(int32(0)).NumMethod()) // Prints 0
埋め込まれたプリミティブ型の値へのアクセス
User 構造体の埋め込み int32 値にアクセスするには、フィールドとしての非修飾型名name:
type User struct { int32 Name string } u := User{3, "Bob"} fmt.Println(u.int32) // Prints 3
プリミティブ型の埋め込みの長所と短所
プリミティブ型の埋め込みには直接的な利点はないかもしれませんが、欠点がある可能性があります:
したがって、一般に、プリミティブ型を埋め込むことは、そうする具体的な理由 (埋め込み値へのアクセスを必要とするインターフェイスの実装など)。
以上がint32 のようなプリミティブ型を Go 構造体に埋め込む必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。