Go 構造体の匿名フィールド
Go 構造体の匿名フィールドは、別の型のフィールドを現在の構造体に埋め込む独自の方法を提供します。明示的に名前を付けます。これにより、コードの再利用、構成、およびデータ構成の柔軟性が可能になります。
指定した例では、
type myType struct { string }
string は、myType 構造体の匿名フィールドです。 myType のインスタンスを作成すると、匿名フィールドには内部的に文字列という名前が付けられます (これはデバッグ ツールで確認できます)。
匿名フィールドへのアクセス
名前付きフィールドとは異なり、ドット表記 (obj.name など) を使用して直接アクセスできますが、匿名フィールドには匿名名ではアクセスできません。ただし、「フィールド プロモーション」として知られる固有のプロパティが提供されます。
構造体の最初の匿名フィールドは自動的に昇格され、親構造体の直接フィールドとしてアクセス可能になります。これは、obj.string.
を使用して myType の文字列フィールドにアクセスできることを意味します。たとえば、次のコードでは:
func main() { obj := myType{"Hello World"} fmt.Println(obj) // Prints "Hello World" }
fmt.Println ステートメントは文字列の値を出力します。 obj.string としてアクセスできる匿名フィールド。
匿名の利点フィールド
以上がGo 構造体の匿名フィールドはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。