类似Golang变量的命名约定

时间:2016-11-30 06:49:18

标签: go naming-conventions

我有几种情况,我将相同的基础值表示为多种类型。

示例:

userIDString := r.URL.Query("id")
userID, err :=  strconv.Atoi(userIDString)

我需要在不同的地方使用上述两个变量。

同样

recordSeparator = rune(30)
recordSeparatorString = string(30)

我的方法是将这些变量命名为惯用吗?如果不是这种情况的理想命名约定?

PS:我不认为这个问题主要是基于意见的,我正在寻找引用流行的go项目/标准库中的命名约定的答案。

1 个答案:

答案 0 :(得分:11)

该领域可能最权威的书The Go Programming Language,在 10.6包和命名部分讨论了这个主题:

  • 保持名称简短,但不要让它们神秘(user超过userName
  • 包名通常采用单数形式(除非与预先声明的类型发生冲突)
  • 选择名称,以便他们在包的上下文中读取,例如net.IP

此外,还有一个很好的幻灯片What's in a name可以解决一些问题,还有一些信息量很大的reddit thread也可能有用。

根据我的经验(除了上面提到的)之外的大多数命名约定都是项目或公司特定的。