[ 后端与 GO进阶 | 青训营笔记]

147 阅读2分钟

这是我参与[第五届青训营]伴学笔记创作活动的第三天。 普通变量命名

1、不允许中文拼音命名。

2、Go中的命名推崇简洁,可以使用缩写方式,缩写表意不明请予以注释。UrlArray,应该写成urlArray或者URLArray。

3、不要以下划线或者数字开头。

4、全局变量以及参数变量采用驼峰式结构且不能出现下划线。

5、首字母大小写视变量可见范围而定。

包及包内文件命名

1、使用小写单词,缩写,不允许存在下划线或者驼峰式结构。

2、包内文件名基本和上条保持一致,允许下划线连接单词的形式。 3、包中名称的所有引用都将使用包名完成,因此您可以从标识符中省略该名称。例如,如果有一个 chubby 包,你不应该定义类型名称为 ChubbyFile ,否则使用者将写为 chubby.ChubbyFile。而是应该命名类型名称为 File,使用时将写为 chubby.File。避免使用无意义的包名称,如 util,common,misc,api,types 和 interfaces。

4、包名应为其源码目录的基本名称。在 src/pkg/encoding/base64 中的包应作为 “encoding/base64” 导入,其包名应为 base64, 而非 encoding_base64 或 encodingBase64。 函数相关命名

1、函数名采用驼峰式结构,同样视其可见性设置函数名首字母大小写。

2、命名返回值:

  • 为了提高代码可读性、建议慎用命名返回值。
  • 如果返回多个同样类型的返回值或者返回值的意思不够清晰,建议命名返回值。
  • 不要只为了减少函数内部定义变量而命名返回值 3、Go中默认不提供Getter/Setter方法,对于Getter方法建议直接大写变量首字母作为方法名,Setter方法建议Set+变量名(首字母大写)。 4 .函数的接收者命名,简洁的单词或者接口的缩写,不要使用self,this, me 等没有具体意义的单词。

5、函数接收者的类型默认为指针类型,某些本身就是引用类型的除外(如:map,slice或者chan),当接收者是结构体并且结构体中包含sync.Mutex或者类似同步域;接收者是结构体并且结构体比较大的时候接收者需要设置为指针类型。