在Go 中初始化巢狀結構[重複]
在Go 中使用巢狀結構時,如果嘗試初始化,可能會遇到錯誤使用介面作為內部結構類型的主結構。為了解決這個問題,您可以考慮以下幾種方法:
複製匿名結構類型
如果內部結構是匿名結構,您可以初始化 main struct透過在期間再次明確指定內部結構的類型構造:
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 Filter struct { Name string ID int } type DetailsFilter struct { Filter Filter }
然後您可以如下初始化主結構:
df := DetailsFilter{Filter: Filter{Name: "myname", ID: 123}}
以上是如何在 Go 中正確初始化巢狀結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!