源码规则
注释
// line comment; 注释到当前行结束
/*
block comment; 注释可跨越多行
*/
标识符
- 命名字符: Unicode 字母、Unicode 数字、下划线;
- 首字符: 必须是 Unicode 字母或下划线;
- 大小写敏感:
name和Name是不同标识符; - blank identifier:
_, 接收但丢弃一个值;
var userName = "tom" // 普通标识符
_ = userName // _ 丢弃不需要的值
关键字
- keyword: Go 语法保留词, 不能作为普通标识符;
- predeclared identifier: 预定义标识符, 可被遮蔽但不推荐;
| 分类 | 关键字 |
|---|---|
| 声明 | const, func, import, package, type, var |
| 控制流 | break, case, continue, default, defer, else, fallthrough, for, go, goto, if, range, return, select, switch |
| 类型/并发 | chan, interface, map, struct |
文件规则
- Go 源文件: 文件名通常以
.go结尾; - package 声明: 每个
.go文件第一条非注释语句通常为package; - 同一目录: 除测试包外通常只声明一个 package;
换行规则
- 分号插入: 编译器根据换行位置自动插入分号;
- 花括号位置: 控制语句和函数声明的左花括号通常放在同一行;
// 左花括号与函数声明同一行; Go 编译器会按规则自动插入分号
func main() {
fmt.Println("ok")
}