Go语言编码规范
Release Date: 2025-01-21
Table of Contents
Go 语言编程中的命名规范、注释规范以及 import 规范
命名规范
文件名
使用小写字母+下划线,蛇形命名。
测试文件以 _test.go 结尾,平台特定文件 _windows.go 结尾
http_server.go
http_server_test.go // 测试文件
http_server_windows.go
包名
使用小写字母,不要使用下划线和混合大小写
简短而具有描述性、有意义的名称,尽量和目录保持一致,不要和标准库冲突
package mypackage
package fileutil
变量名
使用驼峰命名法,不要使用蛇形命名法
私有使用小驼峰,公有使用大驼峰
也可以直接使用各个单词的小写首字母
变量名应该既简短又具有描述性,避免使用单字母名称,除非是循环变量
var myVariable int
var itemCount int
var un string
有一些专有名词如
API或者URI,尽量全部大写或者小写,不要写为Api或者Url
布尔类型的变量名最好使用
has、is、can、allow这些动词开头,易于区分
常量名
使用全大写,用下划线分隔单词
const PI = 3.14
const KEY_SIZE = 32
函数名和方法名
使用驼峰命名法,不要使用蛇形命名法
私有使用小驼峰,公有使用大驼峰
函数名应该使用动词,明确描述函数的操作
测试文件中的测试函数以 Test 为前缀,后面跟被测试的函数名
func calculateSum() int
func fetchData()
func TestCheckData() {} // 测试函数
结构体和接口名
使用驼峰命名法,不要使用蛇形命名法
私有使用小驼峰,公有使用大驼峰
尽量避免使用缩写,除非是广泛接受的行业标准。
type EmployeeData struct {}
type HTMLParserInterface interface {}
接口名常常会在单词前加上一个大写的 I,表示一个接口。
type IWrite interface{}
type IRead interface{}
注释规范
Go 提供两种注释
\\适用于单行注释\* *\适用于多段注释
使用注释的情况有很多种:
- 变量注释(后面或者上面)
- 包注释
- 接口注释
- 函数注释
- 代码逻辑注释
// user包 封装了一些结构体
// author: LiuChao
// datetime: 2025-01-21
package user
// Course对课程信息的封装
type Course struct {
// 课程名称
Name string // 课程名称
}
// GetCourse 获取课程信息
// 参数: Course课程对象
// 返回: 课程名称
func GetCourse(c Course) string {
return c.Name
}
import 规范
import 包的类型可以分为三类:
- go 标准库中的包
- 第三方的包
- 本地自己编写的包
在 import 中的书写顺序也尽量按照上方的顺序分组书写,每种类型间隔一行来区分,并且每种类型的包书写时也需要按照包名的首字母来排序
import (
"encoding/json"
"io"
"os"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"src/mypackage"
)