基础入门

概述

基础入门部分是整个 Hello Go 课程的核心。在这里,你会从零开始掌握 Go 语言的所有基本语法和编程模式 —— 从变量声明到函数设计,从结构体建模到接口抽象,从并发原语到泛型复用。

这一部分面向所有刚接触 Go 的初学者。即使你有其他语言的经验,Go 的设计哲学(显式错误处理、组合优于继承、通过通信共享数据)也值得你从头梳理。基础部分不追求"快速出活",而是帮你建立一个完整的、可延伸的知识体系。当你完成后面的进阶和实战部分时,会频繁回到这里查阅基础概念。

你会学到什么

完成本部分后,你将能够:

  1. 能用 var:= 声明变量,用 const 定义常量,并理解类型推断的适用场景
  2. 能使用整数、浮点数、布尔值、字符串进行数据表达,用切片和 map 组织集合,用 time.Time 处理时间
  3. 能定义参数和返回值清晰的函数,使用多返回值处理错误,用闭包封装有状态逻辑
  4. 能编写 if/else 条件分支、for 循环、switch 多路匹配,正确使用 defer 管理资源清理
  5. 能用结构体(struct)建模业务数据,理解值接收者与指针接收者的区别,通过嵌入组合行为
  6. 能设计小接口、利用隐式实现解耦依赖,使用 io.Writer/io.Reader 等标准库接口
  7. 能启动 goroutine 执行异步任务,用 channel 安全传递数据,用 select 处理超时和多路复用
  8. 能定义泛型函数和泛型类型,使用类型约束限制参数范围,编写可复用的数据结构
  9. 能理解包的可见性规则,使用 init() 函数,管理 go.mod 模块路径
  10. 能使用 & 取地址和 * 解引用,安全处理 nil 指针,判断值传递与指针传递的取舍
  11. 能使用 logslog 输出日志,设置日志级别,编写自定义 Handler 控制输出行为
  12. 能创建和包装错误,用 errors.Iserrors.As 判断错误类型,设计合理的错误处理策略

章节导航

标记章节说明
🔵变量与表达式Go 变量的声明语法和类型推断,以及常量的定义方式
🔵函数基础Go 函数签名的设计方法,多返回值、命名返回值、可变参数和闭包
🔵基础数据类型Go 的整数、浮点数、布尔值、字符串、切片、map 和时间的使用方式
🔵控制流if/elseforswitchdefer 的语义和使用场景
🔵包管理包的可见性规则、init() 函数、go.mod 模块路径和导入路径的设计原则
🔵日志记录logslog 的结构化日志演进,自定义 Handler 和测试中的日志验证
🟡结构体结构体的定义和初始化、方法绑定的接收者选择、嵌入组合的设计模式
🟡接口隐式实现机制、小接口设计原则、空接口与类型断言、标准库接口模式
🟡并发入门goroutine 的生命周期管理、channel 的发送接收与缓冲、select 多路复用、常见并发陷阱
🟡泛型类型参数 [T any] 的定义与使用、类型约束的设计、泛型高阶函数和数据结构
🟡指针内存地址与解引用的概念、指针接收者和指针参数的使用场景、nil 指针安全处理
🟡错误处理错误即值的设计哲学、哨兵错误与错误链、errors.Is/errors.As 类型判断、错误处理策略

阶段复习:完成以上 12 章后,请完成 阶段复习:基础部分,将泛型、包、指针和日志的知识组合到一个完整的小程序思路中。

学习路径建议

预计总用时:约 2 小时

难度标记说明:

  • 🔵 入门级(6 章):Go 语法的基础构件,适合第一次接触 Go 的读者。每章约 10-15 分钟。
  • 🟡 进阶级(6 章):在基础语法之上增加抽象思维,建议已有一定的编程经验。每章约 15-20 分钟。

学习策略:

  • 从 🔵 章节开始,每个章节包含概念说明 + 代码示例 + 课后练习
  • 建议按文档顺序学习以建立完整的知识体系,前置章节是后置章节的基础
  • 每章末尾都有知识检查题,建议完成后再进入下一章
  • 遇到卡顿不要停留太久,可以在阶段复习时再回头补强

下一步

完成基础入门后,你可以继续深入:

  • 高级进阶 — 涵盖 Context 上下文管理、高级并发模式、反射(reflection)、数据库操作、Web 开发、测试实践和性能调优等主题,帮助你理解 Go 在企业级项目中的完整用法。
  • 精选实战 — 包含 Web 服务、CLI 工具、数据处理管道等真实项目演练,将基础语法转化为实际的项目能力。