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

简介: 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学习总结笔记

有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。


相关文章
|
18天前
|
编译器 Go
Go 语言基础:包、函数、语句和注释解析
一个 Go 文件包含以下几个部分: 包声明 导入包 函数 语句和表达式 看下面的代码,更好地理解它:
46 0
|
7月前
|
Go
Go 语言的作用域规则及其特点
Go 语言的作用域规则及其特点
142 41
Go 语言的作用域规则及其特点
|
12月前
|
数据可视化 Go 数据库
WEGO使用—在线GO功能注释
WEGO是华大基因公司的一个在线GO注释的网站,根据网站的介绍:WEGO(网络基因本体注释图)是一个简单但有用的工具,用于可视化,比较和绘制基因本体注释结果。随着围棋词汇越来越流行,WEGO在许多研究中被广泛采用和使用,最新一次的更新是在2018年。
372 0
|
18天前
|
存储 编译器 程序员
掌握Go语言:探索Go语言基础,标记、分隔符、标识符和注释的重要性(6)
掌握Go语言:探索Go语言基础,标记、分隔符、标识符和注释的重要性(6)
|
18天前
|
自然语言处理 IDE Go
高效Go编程之格式化+代码注释+命名+分号+控制结构
【2月更文挑战第6天】高效Go编程之格式化+代码注释+命名+分号+控制结构
38 0
|
18天前
|
Go
Go反射深度解析:规则与优化策略
Go反射深度解析:规则与优化策略
18 0
|
18天前
|
编译器 Go
Go 语言注释教程
注释是在执行时被忽略的文本。注释可用于解释代码,使其更易读。注释还可用于在测试替代代码时防止代码执行。Go支持单行或多行注释。
46 1
|
6月前
|
Cloud Native Go 索引
Go 语言切片扩容规则是扩容2倍?1.25倍?到底几倍
Go 语言切片扩容规则是扩容2倍?1.25倍?到底几倍
|
7月前
|
IDE 编译器 Go
Go语言代码断行规则详解
Go语言代码断行规则详解
57 0
|
8月前
|
JSON Go 数据格式
Go语言注释和文档生成的最佳实践 就在这里
Go语言注释和文档生成的最佳实践 就在这里
132 0