ホームページ >バックエンド開発 >Golang >Goでネストされた構造体を適切に初期化するにはどうすればよいですか?

Goでネストされた構造体を適切に初期化するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-03 18:22:39380ブラウズ

How to Properly Initialize Nested Structs in Go?

Go でネストされた構造体を初期化する [重複]

Go でネストされた構造体を操作する場合、初期化しようとするとエラーが発生する可能性があります内部構造体の型としてインターフェイスを使用するメイン構造体。この問題に対処するには、いくつかのアプローチを検討できます。

匿名構造体型の複製

内部構造体が匿名構造体の場合、メイン構造体を初期化できます。内部構造体の型を再度明示的に指定して構造体を作成します。 construction:

type DetailsFilter struct {
    Filter struct {
        Name string
        ID   int
    }
}

df := DetailsFilter{Filter: struct {
    Name string
    ID   int
}{Name: "myname", ID: 123}}

作成後の初期化

または、ゼロ値でメイン構造体を作成し、後でネストされた構造体に値を割り当てることもできます:

df := DetailsFilter{}
df.Filter.Name = "myname2"
df.Filter.ID = 321

名前付き匿名構造体の使用Type

内部構造体を匿名構造体の代わりに名前付き型として定義することで、初期エラーを回避できます。

type Filter struct {
    Name string
    ID   int
}

type DetailsFilter struct {
    Filter Filter
}

その後、次のようにメイン構造体を初期化できます。

df := DetailsFilter{Filter: Filter{Name: "myname", ID: 123}}

以上がGoでネストされた構造体を適切に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。