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 サイトの他の関連記事を参照してください。