go语言规范

开头关键字

所有Go函数(包括在对象编程中会提到的类型成员函数)以关键字func开头:

一个常规的 函数定义包含以下部分:

对应的一个实例如下:

多返回值

Go支持多个返回值。

以上的示例函数Compute()返回了两个值,一个叫result,另一个是 err。
并不是所有返回值都必须赋值。在函数返回时没有被明确赋值的返回值都会被设置为默认值,比如result会被设为0.0,err会被设为nil

注释

Go程序的代码注释与C++保持一致:

Go 程序并不要求开发者在每个语句后面加上分号表示语句结束。 左花括号{ 不能另起一行,要紧随其后,不然会抛出异常:“syntax error: unexpected semicolon or newline before {

行长度

一行最长不超过80个字符

package名称 

保持package的名字和目录保持一致,尽量采取有意义的包名,简短,有意义,尽量和标准库不要冲突。

import 规范

import在多行的情况下,goimports会自动帮你格式化,但是我们这里还是规范一下import的一些规范,如果你在一个文件里面引入了一个package,还是建议采用如下格式:

如果你的包引入了三种类型的包,标准库包,程序内部包,第三方包,建议采用如下方式进行组织你的包:

有顺序的引入包,不同的类型采用空格分离,第一种实标准库,第二是项目包,第三是第三方包。
在项目中不要使用相对路径引入包:

变量声明

变量名采用驼峰标准,不要使用_来命名变量名,多个变量申明放在一起

在函数外部申明必须使用var,不要采用:=,容易踩到变量的作用域的问题。

 

 

错误处理

不能丢弃任何有返回err的调用,必须全部处理。接收到错误,要么返回err,实在不行就panic或者使用log记录下来

 

error 信息

error的信息不要采用大写字母,尽量保持你的错误简短

长句子打印或者调用,使用参数进行格式化分行:

我们在调用fmt.Sprint或者log.Sprint之类的函数时,有时候会遇到很长的句子,我们需要在参数调用处进行多行分割:

 

闭包的调用

 

在循环中调用函数或者goroutine方法,一定要采用显示的变量调用,不要再闭包函数里面调用循环的参数

 

 

 

 

参考资料:http://studygolang.com/articles/2059

 

 

 

分类: go语言

guolin

guolin

相信世界,向往美好,记录成长过程,分享个人心得,充实平凡生活。 网站信条:因为喜欢,所以热爱。

发表评论

电子邮件地址不会被公开。 必填项已用*标注