这一期我们谈一谈 Go 语言的 编码规范 。一个统一的代码风格有利于提高代码的可读性、规范性和统一性。首先声明一点,这里的编码规范并不代表官方,只是参考网络上的一些文章以及 Go 语言官方代码风格的制定进行整理。
package
Windows_test.go文件名_平台.goutils_windows.goutils_linux.gomain.go
APP_VERSION括号
const (
APP_VERSION = "0.1.0"
CONF_PATH = "/etc/xx.conf"
)
当然网上还有另一种命名风格,那就是使用驼峰命名法,但我个人并不推荐这种命名风格。
useruapiClientAPIClientboolhasiscanallowisExistcanManage
struct
// 多行声明
type Person struct {
name string
gender string
age int
}
// 多行初始化
person := Person{
name: "John",
gender: "male",
age: 18,
}
erReaderWriter
type Reader interface {
Read(p []byte) (n int, err error)
}
使用驼峰命名法 对于需要在包外访问的函数要以大写字母开头命名 对于不需要在包外访问的函数要以小写字母开头命名
函数内部的参数的排列顺序也有几点原则:
参数的重要程度越高,应排在越前面 简单的类型应优先复杂类型 尽可能将同种类型的参数放在相邻位置,则只需写一次类型
package
doc.gopackagepackage
// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package fmt
结构体名, 结构体说明
同时结构体内的每个成员变量都要有说明,该说明放在成员变量的后面(注意对齐),例如:
// User , 用户对象,定义了用户的基础信息
type User struct{
Username string // 用户名
Email string // 邮箱
}
每个函数或者方法都应该有注释说明,函数、方法和类型的注释说明都是一个完整的句子。
当然还有下面这种注释习惯,该函数注释包括三个方面(严格按照下面的顺序):
// 函数名, 简要说明
// 参数:
// 参数1:参数说明
// 参数2:参数说明
// 返回值:
// 每行一个返回值
TODO
FIXME
NOTE
80bool returns true if
tabgofmt120
在 Go 语言中一定要注意括号的放置位置,大括号不换行 运算符和操作数之间要留空格
import()
err_errlogreturnpanic