请使用Goland编辑器使用,设置请看goland设置篇
package名字
保持package的名字和目录保持一致,尽量采取有意义的包名,简短,有意义,尽量和标准库不要冲突。
import 规范
// 单包引入
import (
"fmt"
)
// 多包引入,没包独占一行
import (
"encoding/json"
"strings"
"github.com/go-sql-driver/mysql"
)
常量声明
// 常量只能由英文字母组成
// 全部大写
const DIR = "/static/pic"
变量声明
// 变量只能由英文字母组成
// 变量全部使用小驼峰命名,根据是有需要导出决定首字母是否大写
// 多个变量申明使用var括号
var (
userAge int
userName stirng
)
//局部变量声明
// 需要实力化,使用短变量声明
userName := "jack"
// 不需要实力化,使用var关键字声明,此种方式一般用于赋值
var userName string
函数命名
// 函数名称只能由字母组成
// 函数名称采用小驼峰方式,根据是有需要导出决定首字母是否大写
// 函数的参数名称简短那有意义
// 函数体内的代码行数保持在10-15行之间,不要超过20行,此时必须进行方法内容的抽取,将其抽取成多个方法,减少耦合,提高复用
// 函数返回值超过两个参数,则必须给返回值命名
func getUserInfo(id int) (userInfo interface{}, err error){
}
结构体命名
// 函数名称只能由字母组成
// 函数名称采用小驼峰方式,根据是有需要导出决定首字母是否大写
命名规则基本和上面的结构体类型
// 结构体字段命名同结构体命名一致
// 每个字段独占一行
type UserInfo struct{
UserName string
UserAge int
}
接口命名
// 函数名称只能由字母组成
// 函数名称采用小驼峰方式,根据是有需要导出决定首字母是否大写
命名规则基本和上面的结构体类型
// 接口名称以 “er” 作为后缀,例如 Reader , Writer 。
type Reader interface {
Read(p []byte) (n int, err error)
}
有疑问加站长微信联系(非本文作者)