基础语法
01 = 和 := 的区别?
02 指针的作用
03 Go 允许多个返回值吗?
04 Go 有异常类型吗?
05 什么是协程(Goroutine)
06 如何高效地拼接字符串
07 什么是 rune 类型
08 如何判断 map 中是否包含某个 key ?
09 Go 支持默认参数或可选参数吗?
10 defer 的执行顺序
11 如何交换 2 个变量的值?
12 Go 语言 tag 的用处?
13 如何判断 2 个字符串切片(slice) 是相等的?
14 字符串打印时,%v 和 %+v 的区别
15 Go 语言中如何表示枚举值(enums)?
16 空 struct{} 的用途
实现原理
01 init() 函数是什么时候执行的?
02 Go 语言的局部变量分配在栈上还是堆上?
03 2 个 interface 可以比较吗 ?
04 2 个 nil 可能不相等吗?
05 简述 Go 语言GC(垃圾回收)的工作原理
06 函数返回局部变量的指针是否安全?
07 非接口非接口的任意类型 T() 都能够调用 *T 的方法吗?反过来呢?
并发编程
01 无缓冲的 channel 和有缓冲的 channel 的区别?
02 什么是协程泄露(Goroutine Leak)?
03 Go 可以限制运行时操作系统线程的数量吗?
代码输出
变量与常量
作用域
defer 延迟调用