我正在尝试确定const
Golang中的名称是否有命名约定。
我个人倾向于遵循C风格并以大写形式编写它们,但是我在此页面http://golang.org/doc/effective_go.html上未找到任何内容,该页面似乎列出了该语言的一些命名约定。
我正在尝试确定const
Golang中的名称是否有命名约定。
我个人倾向于遵循C风格并以大写形式编写它们,但是我在此页面http://golang.org/doc/effective_go.html上未找到任何内容,该页面似乎列出了该语言的一些命名约定。
Answers:
标准库使用驼峰式大小写,因此我建议您也这样做。首字母是大写还是小写,取决于您是否要导出常量。
一些例子:
md5.BlockSize
os.O_RDONLY
是一个例外,因为它是直接从POSIX借来的。os.PathSeparator
const
元素暴露给其他包也很重要。如果您使用UpperCamelCase
或ALL_CAPS
将其导出到包装之外。出于这个原因,我坚持lowerCamelCase
使用私有const变量,而且我记得从与Go项目相对较近的人(甚至在官方文档中,我忘记了在哪里)读过此建议。
该页面收集了在Go代码复查期间提出的常见注释,因此,速记可以引用一个详细的说明。这是常见错误的清单,而不是样式指南。
您可以将其视为http://golang.org/doc/effective_go.html的补充 。
请参阅http://golang.org/doc/effective_go.html#mixed-caps。即使在违反其他语言的约定时也是如此。例如,未导出的常量是maxLength而不是MaxLength或MAX_LENGTH。
最后,Go中的约定是使用MixedCaps或mixedCaps而不是使用下划线来编写多字名称。
标识符可以被导出以允许从另一个包访问它。如果同时满足以下条件,则导出标识符:
标识符名称的第一个字符是Unicode大写字母(Unicode类“ Lu”);和
标识符在包块中声明,或者是字段名或方法名。
所有其他标识符都不会导出。
使用混合帽。
FOO_BAR_BAZ
易于阅读的方式编写常量,但是不幸的是,这会影响常量的可见性,而且并不常见。即使我不喜欢它,我也不得不放下自己的骄傲并接受惯例。