一尘不染

类似Golang变量的命名约定

go

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

范例:

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

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

相似地

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

我命名此类变量的方法是否被认为是惯用的?如果不是这样的话,理想的命名约定是什么?

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


阅读 201

收藏
2020-07-02

共1个答案

一尘不染

该领域中可能最权威的书《 Go编程语言》10.6包和命名 一节中讨论了该主题:

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

此外,还有一个不错的幻灯片套牌,其中的“名称”可以解决一些问题,还有一些信息性的Reddit线程,也可能很有用。

根据我的经验(除上述内容外),大多数命名约定都是特定于项目或公司的。

2020-07-02