Go-编码规范(注释,变量名等基本规则)
Posted lady_killer9
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go-编码规范(注释,变量名等基本规则)相关的知识,希望对你有一定的参考价值。
目录
格式化
使用gofmt进行格式化
注释
go有行注释和块注释
行注释
// 行注释
块注释
/*
块注释
*/
包的注释
- 每个包的前面都应该有注释,来说明包的作用,例如,我写的包datastructure/singlelist中就有包的注释,对应文章:Go-如何优雅的实现单链表?(含全部代码)
/* 数据结构:单链表 author:lady_killer9 博客:https://blog.csdn.net/lady_killer9 增:尾插、头插、指定元素后插 删:头删、尾删、指定元素后删 头结点、尾节点:返回头结点、尾节点 长度:链表长度 查找:查找第一个val // 遍历: // for e := lst.Front(); e != nil; e = e.Next() { // // do something with e.Val // } */ package singlelist
函数的注释
每个函数前都应该有注释,说明函数的功能(以函数名开头,方便使用godoc查找),参数,返回值
//Plus will return a+b
// a:a number
//b:another number
//return: a+b
func Plus(a,b int) int
可导出的变量的注释
每个可导出的变量(首字母大写)都应该有注释
命名规范
- 由26个英文字母大小写,0-9,组成,数字不可以开头
- Golang中严格区分大小写
- 标识符不能包含空格
- 下划线”_”本身在Go中是一个特殊的标识符,称为空标识符。可以代表任何其它的标识符,但是它对应的值会被忽略(比如:忽略某个返回值)。所以仅能被作为占位符使用,不能作为标识符使用
- 不能以系统保留关键字作为标识符,比如break,if 等等.…
包名
小写单词,简短有意义,尽量和所在文件夹名一致,不要和标准库冲突
-Go
----src
--------errors
-------------errors.go===>package errors
包名为 main 的包为应用程序的入口包
文件名
小写单词,下划线分隔
变量名/函数名/常量名
本包内:
驼峰法:第一个单词小写,如果后面有单词,首字母大写
包外可访问:
帕斯卡命名:每个单词都首字母大写
方法名
对于结构体的方法,和函数基本一致,Getter和Setter方法需要以Get或Set为前缀,例如,某结构体有name属性,对应的Getter和Setter方法名为GetName、SetName
结构体转为字符串的方法命名为String
接口
接口名称建议加er后缀,如 Reader
、Writer
、 Formatter
、CloseNotifier
等,当然在标准库中我也看到过没有er后缀的接口。
分号
for中的使用很常见,由于if和switch接受初始化语句,也可使用 ; 分隔,例如,if中使用分号
if err:=recover();err!=nil{
return err
}
缩进
不同层级一个Table(四个空格)
错误和异常
不宜使用过多的panic,尽可能使用error显示返回错误
函数
为增强可读性,不宜过多的使用bare return(返回值命名,return后什么也不写),尤其是有多个返回值,有多个分支时
函数返回error时,放在返回列表的最后一个,例如
func (file *File) Write(b []byte) (n int, err error)
更多Go相关内容:Go-Golang学习总结笔记
有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。
以上是关于Go-编码规范(注释,变量名等基本规则)的主要内容,如果未能解决你的问题,请参考以下文章