Go-编码规范(注释,变量名等基本规则)

Posted lady_killer9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go-编码规范(注释,变量名等基本规则)相关的知识,希望对你有一定的参考价值。

目录

格式化

注释

行注释

块注释

包的注释

函数的注释

可导出的变量的注释

命名规范

包名

文件名

变量名/函数名/常量名

接口

缩进

错误和异常

函数

 


格式化

使用gofmt进行格式化

注释

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后缀,如 ReaderWriterFormatterCloseNotifier等,当然在标准库中我也看到过没有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-编码规范(注释,变量名等基本规则)的主要内容,如果未能解决你的问题,请参考以下文章

GO 编码规范

Go 语言编程规范

golang编码规范

Python语法特点如注释规则代码缩进编码规范等

写在开始前---代码规范

Go 语言标识符包名规范