GoLang naming rules and conventions
GO命名规范
Go中命名规范主要分为两种:
- 标识符: 函数名, 常量, 变量等
- 其他: 模块, 文件
标识符命名为应当严格遵行规范, 因为会影响到标识符的作为域.
非标识符命名在无强规范, 但有一些指导规范和常用习俗, 沿用此类方式可增强程序的鲁棒性, 避免出现兼容问题.
项 | 分类 | 规则 | 规范 | 样例 | 规范强度 | 参考 |
---|---|---|---|---|---|---|
文件名 | 非标识符 | 全小写 .标点_下划线开头会被忽略 _test结尾会被认为是测试文件 |
全小写 尽可能简短 必要时使用_下划线分隔. |
main.go config.go http_get.go userxxxx_model.go |
弱 | https://medium.com/@kdnotes/golang-naming-rules-and-conventions-8efeecd23b68 https://github.com/golang/go/issues/36060 |
包名 | 非标识符 | 全小写 | 全小写 尽可能简短 尽可能不使用分隔符或下划线 |
util dateparse jsonparser useragent fastconv |
弱 | https://pkg.go.dev/ |
函数名 | 标识符 | 大写开头作用域为整个程序. 小写开头作用域为包内. |
外部调用: 大驼峰 仅内部使用 小驼峰 |
内: getFullPath writeDB 外: GetFullPath WriteDB DBWriter |
强 | https://go.dev/doc/effective_go#mixed-caps |
常量 | 标识符 | 单词以大写开头. | 内: DBName UserNname MyURL |
强 | https://www.cnblogs.com/rickiyang/p/11074174.html | |
变量 | 标识符 | 大写开头作用域为整个程序. 小写开头作用域为包内. |
外部调用: 大驼峰 仅内部使用 小驼峰 |
内: dbName userName myURL 外: UserName UserID MyURL |
强 |