Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Zig 编程语言全面入门教程

——写给有编程经验、想系统理解 Zig 的开发者

这是一份面向已有编程经验读者的 Zig 教程。全书围绕一条主线展开:

用强调显式表达的语言,逐步理解控制流、失败路径和资源生命周期。

阅读时持续关注四个问题:代码是否把意图写清楚了?失败路径是否被当作主流程的一部分?资源由谁持有、由谁释放、生命周期到哪里结束?编译期机制和运行时机制分别解决什么问题?

这本书适合谁?

  • 已具备至少一门编程语言经验的开发者
  • 对系统编程、底层控制、性能、可预测性有兴趣的读者
  • 想从 C/C++/Rust/Go 迁移,或横向了解 Zig 的工程师
  • 希望理解语言设计,而不只停留在语法层面的读者

本书不是零基础的编程入门教材。

全书结构

第一部分:基础

建立 Zig 的基本语法和阅读方式:语言定位、开发环境、类型、函数、复合类型、控制流、错误处理和构建系统。

第二部分:高级特性

进入 Zig 的核心机制和工程主题:标准库、comptime、泛型、指针、内存管理、接口设计、C 互操作、并发、测试、构建系统与包管理。重点逐步看清哪些能力属于编译期、哪些属于运行时、哪些抽象是零成本的、工程代码中如何组织资源与依赖。

第三部分:实战与专题

把前两部分的内容放回完整案例和专题中:CLI 工具、HTTP 服务器、内存池、配置系统、SIMD、异步 I/O、高级内存管理、性能优化等。重点不再是单个语法点,而是如何把语言机制和标准库能力组合起来解决问题。

建议怎么阅读?

第一次接触 Zig 时,按目录顺序阅读。自然的路径是:从《认识 Zig》建立整体认识 → 完成环境搭建 → 学习基础语法、控制流和错误处理 → 进入标准库与高级机制 → 在实战章节回看这些机制如何落到项目中。

有较强系统编程背景的读者,可以把本书当作“教程 + 参考读物“结合使用。

版本说明

本教程面向 Zig 0.16.0 稳定版。Zig 仍在持续演进,版本号说明:

  • 稳定版(stable):如 0.16.0,经过测试的正式发布版,API 确定
  • 开发版(dev):如 0.17.0-dev,包含最新特性,API 可能继续调整

教程代码已针对 Zig 0.16.0 稳定版的标准库 API 进行校对。在外部资料中看到 std.iostd.fs.cwd()、旧版 ArrayList 等写法时,版本差异是需要优先排查的因素。

Zig 0.16.0 的主要变化

  • std.Io 成为 I/O 与并发的统一入口,旧 std.iostd.fs 风格逐渐淘汰
  • std.process.Init 是推荐的 main 参数形式
  • @cImport 已废弃,推荐构建系统中的 addTranslateC
  • 旧的语言级 async/await 已移除,异步方向偏向库层与 I/O 基础设施演进

关于代码示例

  • 优先选择容易读懂、便于解释、能体现设计意图的写法
  • 对版本敏感的 API,会标出需要额外留意的地方
  • 错误示例只用于教学对比,不作为推荐写法

阅读时遇到版本差异,先确认本地 Zig 版本(zig version),再对照标准库文档和源码。本教程重点在于理解设计意图、边界和组织方式,而不只是记住某个版本快照下的函数名。