首页 > 后端开发 > Golang > 为什么 Go 中 `yaml.Unmarshal()` 返回空结构体?

为什么 Go 中 `yaml.Unmarshal()` 返回空结构体?

Susan Sarandon
发布: 2024-12-07 16:46:13
原创
789 人浏览过

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() 可以成功将 Y​​AML 数据解析到结构中。

以上是为什么 Go 中 `yaml.Unmarshal()` 返回空结构体?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板