Go では、追加機能やデータ構成のために構造体内にカスタム型を埋め込むのが一般的です。しかし、同じ原則が int32 のような事前に宣言された型に適用できるでしょうか?この質問とその意味を見てみましょう。
事前宣言された型 int32 には使用可能なメソッドがありません。これはリフレクションを使用して確認できます。
fmt.Println(reflect.TypeOf(int32(0)).NumMethod()) // Prints 0
構造体の埋め込み int32 値にアクセスするには、非修飾型名をフィールド名として使用します。
u := User{3, "Bob"} fmt.Printf("%#v\n", u) // Output: main.User{int32:3, Name:"Bob"} u.int32 = 4 fmt.Println(u.int32) // Output: 4
int32 のようなプリミティブ型を埋め込むことには直接的な利点はありませんが、他の型を埋め込むと一般に次のような利点があります。
int32 のような事前宣言された型の埋め込みには、次のような欠点があります。
結論として、int32 のような事前に宣言された型の埋め込みは特定のシナリオでは便利ですが、利点と欠点を慎重に検討して、それが最適なソリューションであることを確認することが重要です。当面の問題
以上がGo に「int32」のような事前に宣言された型を埋め込むと実際の利点はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。