首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板