Go 構造体の匿名フィールドはどのように機能しますか?

Mary-Kate Olsen
リリース: 2024-11-21 12:11:10
オリジナル
150 人が閲覧しました

How Do Anonymous Fields in Go Structs Work?

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 としてアクセスできる匿名フィールド。

匿名の利点フィールド

  • コードの再利用: 匿名フィールドを使用すると、定義を繰り返さずに、一般的に使用されるデータ構造またはインターフェイスを埋め込むことができます。
  • 構成: 複数のタイプを 1 つに結合することで、複雑な構造を構築できます。 one.
  • 柔軟性: 匿名フィールドは、コードの全体的な構造に影響を与えることなく、埋め込み型を変更する柔軟性を提供します。

以上がGo 構造体の匿名フィールドはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート