首页 > 解决方案 > 主包中结构类型名称的首字母大小写

问题描述

因此,如果未导入,则应为小写。从主包中导入一些东西很奇怪。但是,从其他语言的经验来看,对我来说使用小写作为结构/类的第一个看起来很奇怪。什么方式是惯用的?

标签: go

解决方案


这不是什么是惯用的问题,如果标识符以小写字母开头,它不会被导出,因此只能从声明包(直接)访问,如果标识符以大写字母开头(Unicode 类“Lu "),它被导出并且可以从任何包中引用。有关详细信息,请参阅规范:导出的标识符。这是一个我个人喜欢的设计决策(它使源代码保持干净,并且“它们甚至具有语义效果:名称在包外的可见性取决于它的第一个字符是否为大写” ——Effective Go: Names) .

这个main包很特别:你不能导入主包,所以不管你如何在main包中命名你的标识符,没有人(除了 之外的包main)会引用它们/使用它们。

查看更多相关博客文章:

Go 常见问题解答:Unicode 标识符怎么了?

Ardan labs:Go 中导出/未导出的标识符


推荐阅读