主题
03 · Tour of Go 通关地图
目标:用官方交互教程建立语言骨架,而不是刷完十篇「Go 入门」。
官方主文:A Tour of Go
1. 为什么必须做 Tour
Tour 是官方设计的四段路径,覆盖:
- 基础语法与数据结构
- 方法与接口
- Generics(泛型)
- 并发原语
每段末尾有练习。做完 Tour = 暑假计划里「看完 Tour」那一项可打勾。
在线:https://go.dev/tour/
也可本地安装(见 https://go.dev/doc/ 中 Tour 说明):
bash
go install golang.org/x/website/tour@latest1
2. 通关节奏(建议 4~7 天穿插)
| 天 | Tour 段 | 笔记只记这些 |
|---|---|---|
| D1 | Basics:包、变量、类型、流程 | :=、零值、for 是唯一循环 |
| D2 | Basics:struct / array / slice / map | slice 三元组(ptr,len,cap)直觉 |
| D3 | Methods & Interfaces | 方法接收者;接口隐式满足 |
| D4 | Generics | 类型参数长什么样即可,不深挖 |
| D5 | Concurrency | goroutine、channel、select 各写一遍 |
| D6~7 | 各段 Exercises | 独立完成,禁止直接贴 AI 答案 |
能量不够时:每天 20~30 分钟,做完练习再进下一段。
3. 和 Node/TS 对照(Tour 时边走边标)
| Tour 概念 | JS/TS 近似 | 别混为一谈 |
|---|---|---|
包 package | 模块 / 文件作用域 | 导出靠大写开头 |
error 多返回值 | try/catch 或 Result | 没有异常主流路径 |
| slice | 可变数组的「视图」 | 共享底层数组 |
| interface | TS interface | 隐式实现,无 implements 关键字必需 |
| goroutine | 不像 Promise | 更像「很轻的线程 + 通信」 |
4. AI 时代:Tour 练习怎么用助手
允许:
- 「解释这一页官方英文在说什么」
- 「我写的 exercise 解法,对照 Tour 意图有什么问题?」
- 「用更 idiomatic 的写法重构,保持行为不变」
禁止:
- 直接:「完成 Tour 的 Web Crawler exercise 完整代码」然后复制提交
- 跳过 Basics 直接问并发生产级模式
验收口诀:能合上 AI 窗口自己重写练习,才算过关。
5. 通关后最小笔记模板(复制用)
markdown
### Tour 卡片:<主题>
- 官方页:
- 一句话:
- 易错:
- 对照 JS:
- 最小代码:(≤15 行)1
2
3
4
5
6
2
3
4
5
6
建议至少留下 6 张:slice、map、interface、error、goroutine、channel。
6. Effective Go 怎么夹进 Tour
Effective Go 文首写明:写于早期,不覆盖泛型、modules 等。用法:
- Tour 做完后 扫读 Formatting / Names / Control structures / Interfaces
- 遇争议以 语言规范 + 现行标准库为准
- 不要当「唯一圣经」背诵
7. 验收清单
- [ ] Tour 四段 + exercises 完成(或明确记下跳过项与原因)
- [ ] 能不看笔记写出:带方法的 struct + 一个小 interface
- [ ] 能写出:两个 goroutine + 一个 channel 收发 demo
- [ ] 开始第 04 篇精读 slice / error
