Go: プリミティブ型の埋め込み
埋め込みには、ある型を別の型の中に含めることが含まれます。これはさまざまなシナリオで役立ちます。ただし、int32 のようなプリミティブ型を埋め込む場合は、特定の考慮事項が適用されます。
プリミティブ型のメソッド
まず、プリミティブ型にはメソッドがありません。これは、提供した例のように、構造体に int32 を埋め込むと、ユーザー構造体に int32 メソッドへのアクセスが許可されないことを意味します。これを確認するには、reflect.TypeOf(int32(0)).NumMethod() を使用してリフレクション チェックを実行します。これはメソッドが存在しないことを示す 0 を返します。
埋め込み値へのアクセス
非修飾型名をフィールドとして使用して、埋め込み int32 フィールドの値にアクセスできます。名前。たとえば、u という名前のユーザー インスタンスがある場合、u.int32 を使用して埋め込まれた int32 値にアクセスできます。
プリミティブ型を埋め込む利点
プリミティブ型はメソッドやメソッドを持たないため、プリミティブ型を埋め込むことには大きな利点があります。
プリミティブ型を埋め込むことの欠点
逆に、プリミティブ型を埋め込むと欠点が生じる可能性があります。デフォルトでは、埋め込まれた事前宣言型 (小文字で始まる型) はエクスポートされません。つまり、これらの型は宣言パッケージ内でのみ参照できます。これにより、その有用性と柔軟性が制限されます。
したがって、メソッドのプロモーションやフィールドのオーバーライドなど、特定の利点が得られない限り、プリミティブ型を埋め込むことは一般的に推奨されません。
以上がGo 構造体にプリミティブ型を埋め込む必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。