Go语言编码规范
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"
)