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