将 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中文网其他相关文章!