我正在尝试确定Golang中const
的命名规范。
个人而言,我倾向于遵循C风格并使用大写字母书写,但我在这个页面(http://golang.org/doc/effective_go.html)中没有找到任何列出该语言命名惯例的内容。
我正在尝试确定Golang中const
的命名规范。
个人而言,我倾向于遵循C风格并使用大写字母书写,但我在这个页面(http://golang.org/doc/effective_go.html)中没有找到任何列出该语言命名惯例的内容。
const
元素暴露给其他包很重要。如果使用 UpperCamelCase
或 ALL_CAPS
,则会将其导出到包外。因此,我在私有常量变量中坚持使用 lowerCamelCase
,我记得从与 Go 项目相关的某个人那里读到过这个建议(或者甚至是在官方文档中——我忘记在哪里看到的)。 - weberc2HTTPID
而不是HTTP_ID
。我的代码中有LED_A
,LED_B
等,现在必须更改为LEDA
,LEDB
等以遵循惯例并避免lint报错。我认为后者不太易读,特别是当您连接两个较长的缩写词时。 - BjornLedA // 导出
ledA // 私有
- Nilesh Kesar该页面收集了在Go代码审查中经常提出的一些常见意见,以便可以通过简写引用单个详细的解释。这是一个常见错误的清单,而不是样式指南。
您可以将其视为http://golang.org/doc/effective_go.html的补充。
请参阅http://golang.org/doc/effective_go.html#mixed-caps。即使这违反了其他语言的约定,也适用。例如,未公开的常量是maxLength而不是MaxLength或MAX_LENGTH。
Effective Go(《Go 语言编程》)
MixedCaps(驼峰式命名法)
最后,Go 语言中的惯例是使用 MixedCaps 或 mixedCaps 而不是下划线来编写多个单词的名称。
为了允许从另一个包中访问标识符,可以将其导出。如果一个标识符同时满足以下两个条件,则它是导出的:
标识符名称的第一个字符是 Unicode 大写字母(Unicode 类 "Lu");
该标识符在包块中声明,或者是字段名或方法名。
所有其他标识符都不是导出的。
具体的例子。注意,对于常量(如果相关),在声明类型时指定类型有助于编译器。
// Only visible to the local file
const localFileConstant string = "Constant Value with limited scope"
// Exportable constant
const GlobalConstant string = "Everyone can use this"