首頁 > 後端開發 > Golang > 如何在 Go 中正確初始化巢狀結構?

如何在 Go 中正確初始化巢狀結構?

Linda Hamilton
發布: 2025-01-03 18:22:39
原創
320 人瀏覽過

How to Properly Initialize Nested Structs in Go?

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板