ホームページ > バックエンド開発 > Golang > Goでフィールド参照を使用してネストされた構造体フィールドを初期化する方法?

Goでフィールド参照を使用してネストされた構造体フィールドを初期化する方法?

Patricia Arquette
リリース: 2024-12-24 12:59:14
オリジナル
868 人が閲覧しました

How to Initialize Nested Struct Fields in Go Using Field References?

フィールド参照を使用したネストされた構造体の初期化

このタスクは、親構造体に属するフィールドを設定しながら、リテラル値を使用してネストされた構造体を初期化することです。 。以下に例を示します。

type A struct {
    MemberA string
}

type B struct {
    A
    MemberB string
}
ログイン後にコピー

次に示すように、構造体リテラルで MemberA を直接初期化しようとすると失敗します。

b := B {
    MemberA: "test1",
    MemberB: "test2",
}
fmt.Printf("%+v\n", b)
ログイン後にコピー

これにより、エラー「不明な B フィールド '」が発生します。 MemberA' 構造体リテラル。"

MemberA を正しく初期化するには、有効なインスタンスを指定する必要があります次のコードに見られるように、親構造体 A の

b := B {
    A: A{MemberA: "test1"}, // Initialize the parent struct instance
    MemberB: "test2",
}
ログイン後にコピー

コンパイラ エラー メッセージ「構造体リテラル内の不明な B フィールド 'MemberA'」は、MemberA が B の既知の直接フィールドではないことを示しています。代わりに、埋め込み型 A タイプに属します。 B 構造体を初期化するとき、匿名 A インスタンスは型名 A でのみ認識され、そのメンバーは作成されるまでインスタンスの外部には表示されません。

以上がGoでフィールド参照を使用してネストされた構造体フィールドを初期化する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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