源码规则
Go 的注释有哪几种写法?
// line comment; 注释到当前行结束
/*
block comment; 注释可跨越多行
*/
如何判断一个 Go 标识符是否合法?
- 命名字符: 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, chan, interface, map, struct |
Go 源文件有哪些命名与 package 声明规则?
- Go 源文件: 文件名通常以
.go结尾; - package 声明: 每个
.go文件第一条非注释语句通常为package; - 同一目录: 除测试包外通常只声明一个 package;
Go 如何根据换行自动插入分号, 花括号应放在哪里?
- 分号插入: 行末是标识符、字面量、
break、continue、fallthrough、return、++、--、)、]或}时,词法分析会自动补分号; - 花括号位置: 控制语句和函数声明的左花括号通常放在同一行;
// 左花括号与函数声明同一行; Go 编译器会按规则自动插入分号
func main() {
fmt.Println("ok");
}