本篇基于 Go 1.25.1 版本,一次性讲透包、变量、函数、常量的官方命名规则,新手直接抄作业,代码秒变专业✅
一、Go 命名核心总规则(背会这3条)
- 1. 驼峰命名(CamelCase):不用下划线!
- 2. 大小写决定权限:
- • 大写开头 = 公开(导出),包外可访问
- • 小写开头 = 私有,包内仅自己用
- 3. 望文知意:简洁、清晰、不拼音
二、全场景命名规范表(直接收藏)
| 命名对象 | 规范 | 示例(正确) | 示例(错误) |
|---|---|---|---|
| 包名(package) | 小写、单数、简短 | user utils config | UserUtils user_utils |
| 变量名 | 驼峰、小驼峰 | userName userAge | user_name UserName |
| 函数名 | 公开大写、私有小写 | GetUser() getAge() | getuser() Get_User |
| 常量名 | 驼峰(非全大写下划线) | StatusOK MaxCount | MAX_COUNT STATUS_OK |
| 结构体 | 驼峰 | UserInfo OrderData | user_info User_info |
| 接口 | 驼峰,常以 er 结尾 | Reader Executor | IReader ReadInterface |
三、分场景详解 + 代码示例
1. 包名(package)
- • 全小写、单数、无下划线、简短
// 正确
package user
package utils
// 错误
package UserUtils
package user_utils2. 变量名(var)
- • 小驼峰(小写开头)
- • 越短越通用,越长越精准
// 正确
var userName string
var userAge int
var httpClient *http.Client
// 错误
var UserName string
var user_name string3. 函数名(func)
- • 公开:大写开头
- • 私有:小写开头
// 公开:包外可调用
func GetUserInfo() {}
// 私有:仅包内调用
func getUserAge() {}4. 常量名(const)
- • 驼峰命名!不是全大写+下划线
// 正确
const MaxCount = 100
const StatusOK = 200
// 错误(别学Java!)
const MAX_COUNT = 1005. 结构体 & 字段
// 公开结构体
type User struct {
Name string // 公开字段
age int // 私有字段
}四、完整规范 Demo(本地直接跑通)
main.go 全覆盖规范,零语法错误👇
// Package main 程序入口包(包名规范:小写、单数)
package main
import "fmt"
// MaxCount 公开常量(大写驼峰)
const MaxCount = 100
// UserInfo 用户信息结构体(公开、驼峰)
type UserInfo struct {
UserName string // 公开字段:大驼峰
userAge int // 私有字段:小驼峰
}
// GetUserInfo 公开函数:获取用户信息(大写开头)
func GetUserInfo() UserInfo {
// 局部变量:小驼峰
currentUser := UserInfo{
UserName: "Go学习者",
userAge: 20,
}
return currentUser
}
// printInfo 私有函数:打印信息(小写开头)
func printInfo(u UserInfo) {
fmt.Printf("用户名:%s\n", u.UserName)
fmt.Printf("最大限制:%d\n", MaxCount)
}
func main() {
user := GetUserInfo()
printInfo(user)
}运行命令
go run main.go运行结果
用户名:Go学习者
最大限制:100五、Go 专属命名惯例(必懂)
- 1. 缩写全大写
HTTPURLIDAPIuserID ✅ 不是 userId httpURL ✅ 不是 HttpUrl - 2. 接口名常用
er结尾
ReaderWriterExecutor - 3. 不使用下划线
除非是特殊变量(如_忽略值)
六、避坑指南(新手必看)
- 1. ❌ 别用下划线:
user_name❌userName✅ - 2. ❌ 别用全大写常量:
MAX_SIZE❌MaxSize✅ - 3. ❌ 别用拼音:
XueSheng❌Student✅ - 4. ✅ 大小写决定权限:公开必须大写!
📌 总结
- 1. 核心规则:驼峰命名 + 大小写控权限
- 2. 包名:小写、单数
- 3. 变量/私有:小驼峰
- 4. 公开/函数/结构体:大驼峰
- 5. 常量:驼峰,非全大写下划线
一篇搞定 Go 命名规范,写出大厂级优雅代码✨
MiaoAll