去const的命名约定

LtW*_*orf 101 const naming-conventions go

我正在尝试确定是否存在constGolang 名称的命名约定.

我个人倾向于遵循C风格并以大写形式编写它们,但我在这个页面上找不到任何内容http://golang.org/doc/effective_go.html这似乎列出了该语言的一些命名约定.

rig*_*old 108

标准库使用camel-case,所以我建议你也这样做.第一个字母是大写或小写,具体取决于您是否要导出常量.

几个例子:

  • md5.BlockSize
  • os.O_RDONLY 是一个例外,因为它是直接从POSIX借来的.
  • os.PathSeparator

  • 确定是否要将`const`元素暴露给其他包也很重要.如果你使用`UpperCamelCase`或`ALL_CAPS`,你将把它输出到你的包之外.出于这个原因,我坚持使用`lowerCamelCase`来获取私有const变量,我记得从相对接近Go项目的人那里读到这个推荐(或者甚至在官方文档中 - 我忘了在哪里). (4认同)
  • 我同意这是 Go 中的正确方法,但在两个单词大写并且不允许使用下划线的情况下,它会增加阅读难度,例如“HTTPID”而不是“HTTP_ID”。我的代码中有 `LED_A`、`LED_B` 等,现在必须更改为 `LEDA`、`LEDB` 等以遵循约定,这样 lint 就不会抱怨。我认为后者的可读性较差,尤其是当您连接两个较长的首字母缩略词时。 (3认同)
  • 这是帕斯卡案例 (2认同)
  • @NileshKesar,是的,我认为这更清楚以及我将如何做到这一点。虽然我没有具体提及,但我指的是 Google 的风格,其中也有一个 linter:https://github.com/golang/go/wiki/CodeReviewComments#initialisms。按理说应该是LEDA LEDB。但当然,您可以像您建议的那样采用自己的风格。我只是想坚持既定的风格。 (2认同)

pet*_*rSO 71

Go Code Review评论

此页面收集在审核Go代码期间所做的常见注释,以便简单方可以引用单个详细说明.这是常见错误的清单,而非风格指南.

您可以将其视为http://golang.org/doc/effective_go.html的补充 .

混合帽

请参阅http://golang.org/doc/effective_go.html#mixed-caps.即使它打破了其他语言的惯例,这也适用.例如,未导出的常量是maxLength而不是MaxLength或MAX_LENGTH.


有效的去

MixedCaps

最后,在围棋的约定是使用MixedCaps或mixedCaps而不是下划线来写多字的名字.


Go编程语言规范

导出的标识符

可以导出标识符以允许从另一个包访问它.如果两者都导出标识符:

  • 标识符名称的第一个字符是Unicode大写字母(Unicode类"Lu"); 和

  • 标识符在包块中声明,或者是字段名称或方法名称.

不导出所有其他标识符.


使用混合帽.


Spe*_*y99 9

具体的例子.请注意,声明常量中的类型(相关时)可能对编译器有帮助.

// Only visible to the local file
const localFileConstant string = "Constant Value with limited scope"

// Exportable constant
const GlobalConstant string = "Everyone can use this"
Run Code Online (Sandbox Code Playgroud)