README
Go 基础专题的学习顺序与入口。
Go 基础专题
从零开始按主题学习。每篇先运行示例,再独立完成练习,最后核对答案。
这里有 28 篇逐章笔记。按顺序学习后,可用待办清单实战检验所学知识。
学习顺序
- 01_环境安装与模块初始化:安装 Go,创建 module,并运行、格式化和测试代码。示例以 Go 1.22 及以上版本为基线。
- 02_程序结构标识符与注释:读懂包、导入、函数入口、命名可见性及注释。
- 03_数据类型与零值:认识布尔、整数、浮点、字符串、数组、切片、映射及零值。
- 04_变量声明与作用域:使用
var、:=和多重赋值,避免变量遮蔽。 - 05_常量与iota:声明常量,理解无类型常量与
iota的用途及风险。 - 06_运算符与类型转换:使用算术、比较、逻辑和位运算,并正确处理类型转换。
- 07_条件语句与switch:写
if、else if、switch,并掌握短声明的作用域。 - 08_for循环与控制语句:使用计数循环、条件循环、无限循环和
break、continue。 - 09_函数参数返回值与可变参数:定义函数、处理多返回值和可变参数,知道何时返回错误。
- 10_递归与终止条件:识别递归的基例、规模缩小和栈开销。
- 11_数组与值复制:声明定长数组,理解长度属于类型、赋值会复制元素。
- 12_切片长度容量与append:理解切片视图、底层数组共享和追加时的容量变化。
- 13_range遍历与索引:遍历数组、切片、映射和字符串,理解得到的是索引、值还是字节位置。
- 14_map映射与键值查找:创建映射、检查键是否存在,并理解 nil map 与迭代顺序。
- 15_字符串字节与rune:区分字节长度和字符数量,完成文本与数字的转换。
- 16_指针地址与修改:理解
&、*、nil 指针和指针参数。 - 17_结构体方法与嵌入:组织字段和行为,分清值接收者与指针接收者。
- 18_接口与隐式实现:理解接口描述行为、实现不需声明,以及接口值的组成。
- 19_类型断言与类型选择:安全地取出接口中的具体值,选择合适的多类型处理方式。
- 20_错误处理defer与panic:按层处理错误,正确关闭资源并理解 panic 的适用边界。
- 21_泛型与类型约束:理解类型参数、约束和适合使用泛型的场景。
- 22_goroutine与同步:启动并发任务,理解主函数退出、等待和共享状态竞争。
- 23_channel与取消:通过通道传值,理解关闭、缓冲和取消信号。
- 24_嵌入与组合复用:理解匿名字段的方法提升与方法集,避免误把嵌入当类继承。
- 25_文件读写与路径:用标准库读写文本文件,处理路径和错误。
- 26_正则表达式与文本处理:编译正则并提取简单格式,同时知道普通字符串函数更合适的情况。
- 27_模块包与测试入门:把代码组织为包,编写最小单元测试并运行工具链。
- 28_JSON与序列化:用
encoding/json编解码结构体,区分无效 JSON、缺失字段与错误类型。