标准库知识体系概览
问题
Go 标准库有哪些核心包?面试中常问哪些?
答案
Go 标准库是 Go 语言的重要优势之一——"batteries included",覆盖了网络、IO、编码、测试等几乎所有后端开发需求。
核心包分类
面试高频包
| 包 | 面试频率 | 核心考点 |
|---|---|---|
io | ⭐⭐⭐⭐ | Reader/Writer 接口、io.Copy、Pipe |
net/http | ⭐⭐⭐⭐⭐ | Handler 接口、中间件、Client |
encoding/json | ⭐⭐⭐⭐⭐ | Marshal/Unmarshal、struct tag、自定义编解码 |
context | ⭐⭐⭐⭐⭐ | 取消信号、超时、已在并发编程中详细介绍 |
testing | ⭐⭐⭐⭐ | 单测、Benchmark、表驱动测试 |
sync | ⭐⭐⭐⭐⭐ | 已在并发编程中详细介绍 |
reflect | ⭐⭐⭐ | 反射基础、框架原理 |
sort / slices | ⭐⭐⭐ | 排序接口、泛型排序 |
time | ⭐⭐⭐ | 时间操作、Ticker、Timer |
strings / bytes | ⭐⭐ | 字符串操作 |
分类文档导航
| 文档 | 核心内容 |
|---|---|
| io 接口体系 | Reader/Writer、常用实现、组合模式 |
| net/http 详解 | Handler、ServeMux、Client、中间件 |
| encoding/json | 序列化规则、struct tag、自定义编解码 |
| testing 测试 | 单测、Benchmark、表驱动、覆盖率 |
| reflect 反射 | Type/Value、反射操作、性能影响 |
| sort 与 slices | 排序接口、泛型排序(Go 1.21+) |
| time 时间处理 | 时间格式化、Timer/Ticker、时区 |
| errors 错误处理 | errors.Is/As/Join、错误链 |
| strings/bytes/strconv | 字符串操作、转换函数 |
学习标准库的方法
- 阅读官方文档:pkg.go.dev
- 阅读源码:标准库代码质量极高,是学习 Go 的最佳教材
- 关注接口设计:
io.Reader/Writer、sort.Interface等是 Go 接口设计的典范