首頁 > 後端開發 > Golang > 為什麼我的 YAML 解組為空結構?

為什麼我的 YAML 解組為空結構?

Barbara Streisand
發布: 2024-12-20 02:24:08
原創
561 人瀏覽過

Why is my YAML unmarshaling to an empty struct?

將YAML 解組為結構:了解未匯出的欄位

在此程式碼中,您嘗試將YAML 文檔結構解析為Config 文件結構。但是,產生的配置結構仍然為空,如 {} 所示。這是因為您的結構欄位未匯出。

解決方案:匯出結構欄位

YAML 解組需要匯出結構欄位(以大寫字母開頭),以便它可以存取並填充它們。以下是修正後的程式碼:

type Config struct {
    FooBar string `yaml:"foo_bar"`
}
登入後複製

了解匯出欄位

在 Go 中,匯出欄位可以在聲明它們的套件外部存取。這意味著以大寫字母開頭的欄位可以由其他套件或代碼存取。相反,未匯出的欄位(以小寫字母開頭)只能在同一包中存取。

執行 YAML 解組時,將根據 YAML 資料識別並填入匯出的欄位。由於您的原始欄位未匯出,YAML Unmarshaling 無法存取它們並將它們保留為空。

修正的程式碼

更新要匯出的結構體欄位後,程式碼將成功解析 YAML 資料並填入組態結構:

type Config struct {
    FooBar string `yaml:"foo_bar"`
}

func main() {
    config := ParseYAMLConfig([]byte(configYAMLData))
    fmt.Printf("%v", config) // Outputs: {https://foo.bar}
}
登入後複製

以上是為什麼我的 YAML 解組為空結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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