- 1.1.1. 初级篇:1-34
- 1.左大括号 { 不能单独放一行
- 2.未使用的变量
- 3.未使用的 import
- 4.简短声明的变量只能在函数内部使用
- 5.使用简短声明来重复声明变量
- 6.不能使用简短声明来设置字段的值
- 7.不小心覆盖了变量
- 8.显式类型的变量无法使用 nil 来初始化
- 9.直接使用值为 nil 的 slice、map
- 10.map 容量
- 11.string 类型的变量值不能为 nil
- 12.Array 类型的值作为函数参数
- 13.range 遍历 slice 和 array 时混淆了返回值
- 14.slice 和 array 其实是一维数据
- 15.访问 map 中不存在的 key
- 16.string 类型的值是常量,不可更改
- 17.string 与 byte slice 之间的转换
- 18.string 与索引操作符
- 19.字符串并不都是 UTF8 文本
- 20.字符串的长度
- 21.在多行 array、slice、map 语句中缺少 , 号
- 22.log.Fatal 和 log.Panic 不只是 log
- 23.对内建数据结构的操作并不是同步的
- 24.range 迭代 string 得到的值
- 25.range 迭代 map
- 26.switch 中的 fallthrough 语句
- 27.自增和自减运算
- 28.按位取反
- 29.运算符的优先级
- 30.不导出的 struct 字段无法被 encode
- 31.程序退出时还有 goroutine 在执行
- 33.向已关闭的 channel 发送数据会造成 panic
- 35.若函数 receiver 传参是传值方式,则无法修改参数的原有值
- 1.1.2. 中级篇:36-51
- 36.关闭 HTTP 的响应体
- 37.关闭 HTTP 连接
- 38.将 JSON 中的数字解码为 interface 类型
- 39.struct、array、slice 和 map 的值比较
- 40.从 panic 中恢复
- 41.在 range 迭代 slice、array、map 时通过更新引用来更新元素
- 42.slice 中隐藏的数据
- 43.Slice 中数据的误用
- 44.旧 slice
- 45.类型声明与方法
- 46.跳出 for-switch 和 for-select 代码块
- 47.for 语句中的迭代变量与闭包函数
- 48.defer 函数的参数值
- 49.defer 函数的执行时机
- 50.失败的类型断言
- 51.阻塞的 gorutinue 与资源泄露
- 1.1.3. 高级篇:52-58
由于Markdown无法正确居中和调整图像大小,因此我在markdown文件中使用了原始HTML标签来包含图像:
<p align="center">
<img src="xxx.xx.xx/test.jpg">
</p>