跳到主要内容

源码规则

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");
}