# Go 语言学习导航

## Go 语言学习导航

一套从零开始的 Go 语言系统教程，涵盖基础语法、复合类型、面向对象、泛型、并发编程到工程实践，共 6 个阶段 27 篇。每篇配有可运行的代码示例与配图说明。

---

### 阶段一：Go 语言基础

| # | 篇目 | 核心内容 |
|---|------|---------|
| 01 | [语言简介与环境搭建](golang-1-语言简介与环境搭建.zh-cn.md) | Go 诞生背景、设计哲学、安装配置、Hello World、Go Modules |
| 02 | [程序结构](golang-2-程序结构.zh-cn.md) | 包声明、导入、导出规则、变量作用域、代码组织 |
| 03 | [变量与常量](golang-3-变量与常量.zh-cn.md) | var/const、短变量、iota 枚举、零值、命名规范 |
| 04 | [基本数据类型](golang-4-基本数据类型.zh-cn.md) | 整型、浮点、布尔、字符串、byte/rune、类型转换 |
| 05 | [运算符](golang-5-运算符.zh-cn.md) | 算术、关系、逻辑、位运算、赋值运算符 |
| 06 | [控制流](golang-6-控制流.zh-cn.md) | if/else、for/range、switch、break/continue |
| 07 | [函数](golang-7-函数.zh-cn.md) | 多返回值、可变参数、defer、匿名函数、闭包 |
| 08 | [指针](golang-8-指针.zh-cn.md) | 内存地址、&和*、值传递vs引用传递、new |

### 阶段二：复合类型与数据结构

| # | 篇目 | 核心内容 |
|---|------|---------|
| 09 | [数组](golang-9-数组.zh-cn.md) | 定义初始化、遍历、多维数组、值类型特性 |
| 10 | [切片](golang-10-切片.zh-cn.md) | 创建、append、len/cap、底层结构、copy、共享陷阱 |
| 11 | [字符串](golang-11-字符串.zh-cn.md) | 不可变本质、rune、strings 包、拼接性能对比 |
| 12 | [Map](golang-12-Map.zh-cn.md) | 增删改查、并发安全、sync.Map、哈希结构 |
| 13 | [结构体](golang-13-结构体.zh-cn.md) | 定义初始化、字段标签、嵌入、JSON 序列化 |

### 阶段三：面向对象编程

| # | 篇目 | 核心内容 |
|---|------|---------|
| 14 | [方法](golang-14-方法.zh-cn.md) | 值接收者vs指针接收者、方法集、自定义类型方法 |
| 15 | [接口](golang-15-接口.zh-cn.md) | 隐式实现、空接口、类型断言、type switch、接口组合 |
| 16 | [错误处理](golang-16-错误处理.zh-cn.md) | error 接口、errors.Is/As、%w 包装、panic/recover |

### 阶段四：泛型与高级特性

| # | 篇目 | 核心内容 |
|---|------|---------|
| 17 | [泛型](golang-17-泛型.zh-cn.md) | 类型参数、约束、comparable、泛型函数与结构体 |
| 18 | [反射](golang-18-反射.zh-cn.md) | reflect.Type/Value、反射调用方法、性能开销 |
| 19 | [文件操作](golang-19-文件操作.zh-cn.md) | os 文件读写、io.Reader/Writer、bufio、目录操作 |
| 20 | [JSON 与编码](golang-20-JSON与编码.zh-cn.md) | JSON 编解码、struct tag、自定义序列化、XML/CSV |

### 阶段五：并发编程

| # | 篇目 | 核心内容 |
|---|------|---------|
| 21 | [Goroutine](golang-21-Goroutine.zh-cn.md) | goroutine、GMP 调度模型、GOMAXPROCS、泄漏问题 |
| 22 | [Channel](golang-22-Channel.zh-cn.md) | 有缓冲/无缓冲、方向、close、range 遍历 |
| 23 | [Select 与并发模式](golang-23-Select与并发模式.zh-cn.md) | select 多路复用、超时控制、扇出扇入、管道模式 |
| 24 | [Sync 包](golang-24-Sync包.zh-cn.md) | WaitGroup、Mutex、RWMutex、Once、Map、原子操作 |

### 阶段六：工程实践与标准库

| # | 篇目 | 核心内容 |
|---|------|---------|
| 25 | [测试](golang-25-测试.zh-cn.md) | 单元测试、基准测试、表驱动测试、testify、mock |
| 26 | [标准库](golang-26-标准库.zh-cn.md) | net/http、context、time、log、fmt 常用包精讲 |
| 27 | [项目结构与工具链](golang-27-项目结构与工具链.zh-cn.md) | 目录布局、Makefile、Go Modules、交叉编译、工具链 |

