首頁 >後端開發 >Golang >為什麼 Go 中 `yaml.Unmarshal()` 會回傳空結構體?

為什麼 Go 中 `yaml.Unmarshal()` 會回傳空結構體?

Susan Sarandon
Susan Sarandon原創
2024-12-07 16:46:13793瀏覽

Why Does `yaml.Unmarshal()` Return an Empty Struct in Go?

將 YAML 解組為 Go Struct

在 Go 中,yaml.Unmarshal() 函數用於將 YAML 資料解析為結構化表示,例如結構體。然而,當嘗試將 YAML 資料解析為結構體時,由於未知原因傳回了一個空結構體。

解決方案在於結構體字段的可見性。預設情況下,結構體欄位是不匯出的,這意味著它們只能在定義結構體的套件中存取。若要將 YAML 資料解組到結構中,必須匯出欄位。

要匯出 Go 結構中的字段,請大寫字段名稱的第一個字母。例如,不要使用:

type Config struct {
    foo_bar string
}

,而是使用:

type Config struct {
    FooBar string
}

這會使 FooBar 欄位匯出並允許從套件外部存取它。進行此變更後,yaml.Unmarshal() 可以成功將 YAML 資料解析到結構中。

以上是為什麼 Go 中 `yaml.Unmarshal()` 會回傳空結構體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn