您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

具有未导出字段的Golang结构文字语法

具有未导出字段的Golang结构文字语法

如果您在文字中使用 键值 ,则只能使用复合文字来创建在另一个包中定义的结构类型的 ,因为这样就不需要为所有字段提供初始值,因此可以省去未导出的字段(仅声明包可以设置/更改)。

如果在同一程序包中声明了类型,则也可以设置未导出的字段:

t := Thing{
    Name:           "the name",
    someUnexported: 23,
}

但是,如果类型是在另一个包中声明的,则只能为导出的字段提供初始值,我想这并不奇怪:

t := otherpackage.Thing{
    Name: "the name",
    // someUnexported will implicitly be its zero value
}

如果您需要未导出字段具有其类型的零值以外的值的struct值,则包本身必须导出某种构造函数或初始化程序(或setter方法),因为从外部(包)无法更改/设置未导出的字段。

Go 2022/1/1 18:16:06 有508人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶