类似 Golang 变量的命名约定

Naming convention for similar Golang variables

在一些情况下,我将相同的基础值表示为多种类型。

示例:

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

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

同样

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

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

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

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

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

此外,还有一个不错的幻灯片 What's in a name addressing some of the questions and a somewhat informative reddit thread 可能也很有用。

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