基础入门
概述
基础入门部分是整个 Hello Go 课程的核心。在这里,你会从零开始掌握 Go 语言的所有基本语法和编程模式 —— 从变量声明到函数设计,从结构体建模到接口抽象,从并发原语到泛型复用。
这一部分面向所有刚接触 Go 的初学者。即使你有其他语言的经验,Go 的设计哲学(显式错误处理、组合优于继承、通过通信共享数据)也值得你从头梳理。基础部分不追求"快速出活",而是帮你建立一个完整的、可延伸的知识体系。当你完成后面的进阶和实战部分时,会频繁回到这里查阅基础概念。
你会学到什么
完成本部分后,你将能够:
- 能用
var、:=声明变量,用const定义常量,并理解类型推断的适用场景 - 能使用整数、浮点数、布尔值、字符串进行数据表达,用切片和 map 组织集合,用
time.Time处理时间 - 能定义参数和返回值清晰的函数,使用多返回值处理错误,用闭包封装有状态逻辑
- 能编写
if/else条件分支、for循环、switch多路匹配,正确使用defer管理资源清理 - 能用结构体(struct)建模业务数据,理解值接收者与指针接收者的区别,通过嵌入组合行为
- 能设计小接口、利用隐式实现解耦依赖,使用
io.Writer/io.Reader等标准库接口 - 能启动 goroutine 执行异步任务,用 channel 安全传递数据,用
select处理超时和多路复用 - 能定义泛型函数和泛型类型,使用类型约束限制参数范围,编写可复用的数据结构
- 能理解包的可见性规则,使用
init()函数,管理go.mod模块路径 - 能使用
&取地址和*解引用,安全处理 nil 指针,判断值传递与指针传递的取舍 - 能使用
log和slog输出日志,设置日志级别,编写自定义 Handler 控制输出行为 - 能创建和包装错误,用
errors.Is和errors.As判断错误类型,设计合理的错误处理策略
章节导航
| 标记 | 章节 | 说明 |
|---|---|---|
| 🔵 | 变量与表达式 | Go 变量的声明语法和类型推断,以及常量的定义方式 |
| 🔵 | 函数基础 | Go 函数签名的设计方法,多返回值、命名返回值、可变参数和闭包 |
| 🔵 | 基础数据类型 | Go 的整数、浮点数、布尔值、字符串、切片、map 和时间的使用方式 |
| 🔵 | 控制流 | if/else、for、switch 和 defer 的语义和使用场景 |
| 🔵 | 包管理 | 包的可见性规则、init() 函数、go.mod 模块路径和导入路径的设计原则 |
| 🔵 | 日志记录 | 从 log 到 slog 的结构化日志演进,自定义 Handler 和测试中的日志验证 |
| 🟡 | 结构体 | 结构体的定义和初始化、方法绑定的接收者选择、嵌入组合的设计模式 |
| 🟡 | 接口 | 隐式实现机制、小接口设计原则、空接口与类型断言、标准库接口模式 |
| 🟡 | 并发入门 | goroutine 的生命周期管理、channel 的发送接收与缓冲、select 多路复用、常见并发陷阱 |
| 🟡 | 泛型 | 类型参数 [T any] 的定义与使用、类型约束的设计、泛型高阶函数和数据结构 |
| 🟡 | 指针 | 内存地址与解引用的概念、指针接收者和指针参数的使用场景、nil 指针安全处理 |
| 🟡 | 错误处理 | 错误即值的设计哲学、哨兵错误与错误链、errors.Is/errors.As 类型判断、错误处理策略 |
阶段复习:完成以上 12 章后,请完成 阶段复习:基础部分,将泛型、包、指针和日志的知识组合到一个完整的小程序思路中。
学习路径建议
预计总用时:约 2 小时
难度标记说明:
- 🔵 入门级(6 章):Go 语法的基础构件,适合第一次接触 Go 的读者。每章约 10-15 分钟。
- 🟡 进阶级(6 章):在基础语法之上增加抽象思维,建议已有一定的编程经验。每章约 15-20 分钟。
学习策略:
- 从 🔵 章节开始,每个章节包含概念说明 + 代码示例 + 课后练习
- 建议按文档顺序学习以建立完整的知识体系,前置章节是后置章节的基础
- 每章末尾都有知识检查题,建议完成后再进入下一章
- 遇到卡顿不要停留太久,可以在阶段复习时再回头补强
下一步
完成基础入门后,你可以继续深入: