# Go 语言学习导航

## Go 语言学习导航

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

---

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

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

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

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

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

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

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

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

### 阶段五：并发编程

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

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

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

