Go 主包中struct类型的第一个字母的大小写

Go 主包中struct类型的第一个字母的大小写,go,Go,因此,如果未导入,则应为小写。从主包中导入一些东西是很奇怪的。但是,对于我来说,从使用其他语言的经验来看,第一个结构/类使用小写看起来很奇怪。什么方式是惯用的?这不是什么惯用的问题,如果标识符以小写字母开头,它不会被导出,因此只能从声明包(直接)访问,如果标识符以大写字母开头(Unicode类“Lu”),它会被导出,并且可以从任何包引用。有关详细信息,请参阅。这是一个设计决策,我个人喜欢(它保持了源代码的整洁,而且“它们甚至具有语义效果:包外名称的可见性取决于其第一个字符是否为大写”–) mai

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

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

main
包是特殊的:您无法导入主包,因此无论您在
main
包中如何命名标识符,都不会有人(除了
main
)引用/使用它们

查看更多相关博客帖子:


在GoFor包main中,结构名称不必以小写开头:没人在乎。