内容目录
代码元素 | 命名约定 | 示例 | 说明 |
---|---|---|---|
Go文件 | 小写, 使用下划线 | http_server.go |
Go文件通常是小写的,单词之间使用下划线分隔。 |
函数 | 驼峰式,首字母大写公开 | ComputeSomething() findIndex() |
导出的函数首字母大写,私有函数首字母小写。 |
方法 | 同函数 | user.MarshalJSON() client.doRequest() |
方法命名同函数,首字母大小写决定其可见性。 |
常量 | 大写下划线或驼峰式 | MAX_TIMEOUT DefaultPort |
导出的常量首字母大写,私有常量使用小写。 |
变量 | 驼峰式或简短 | index numItems userID |
变量命名根据其可见性使用大小写,短命名用于局部变量。 |
接口 | 通常以er 结尾 |
Reader Writer |
接口命名反映行为,导出的接口首字母大写。 |
类型 | 驼峰式 | ByteSlice JobQueue |
自定义类型采用驼峰式,首字母大写表示导出类型。 |
包名 | 小写, 无下划线或驼峰 | net http |
包名应简短且为小写,不使用下划线或驼峰式。 |
错误变量 | err 开头 |
errNotFound errInvalidInput |
错误变量通常以err 开头且后接描述。 |
接收器变量 | 类型名称首字母的小写 | func (u *User) Name() string |
方法的接收器变量名通常简短,代表其类型。 |
通道 | 以ch 开头或含Queue |
chDone jobsQueue |
通道变量通常明确指出其为通道类型。 |
全局变量 | 驼峰式,首字母大写公开 | Logger |
全局变量采用首字母大写,代表可导出。 |
临时变量 | 简短命名 | i , j , tmp , buf |
临时变量使用较短的名称,通常用于局部作用域。 |
测试文件 | _test.go 后缀 |
http_server_test.go |
测试文件以被测试的文件名开头,添加_test.go 后缀。 |
工程名 | 小写, 可包含短横线 | go-webserver my_app |
Go工程名应该简洁,能够清楚地反映项目内容或功能。可以包含短横线来分隔单词。 |
工程名称通常与代码仓库名称一致