这是一个系统化的 Zig 学习项目,覆盖 Zig 语言的核心语法与标准库常用功能。 目前使用 Zig 0.16.0(macOS Homebrew 安装)。
ziglearning01/
├── build.zig # 构建脚本 (Zig 0.16)
├── build.zig.zon # 包描述
├── README.md # 本文件
└── src/
├── main.zig # 入口:一个交互式章节菜单
├── 01_hello_world.zig # 第 1 章:Hello World 与基础输出
├── 02_variables.zig # 第 2 章:变量与常量
├── 03_primitive_types.zig # 第 3 章:基础类型
├── 04_arrays_slices.zig # 第 4 章:数组与切片
├── 05_strings.zig # 第 5 章:字符串
├── 06_control_flow.zig # 第 6 章:控制流 (if/while/for/switch)
├── 07_functions.zig # 第 7 章:函数
├── 08_errors.zig # 第 8 章:错误处理
├── 09_optionals.zig # 第 9 章:可选类型
├── 10_structs.zig # 第 10 章:结构体
├── 11_enums_unions.zig # 第 11 章:枚举与联合体
├── 12_pointers.zig # 第 12 章:指针
├── 13_memory.zig # 第 13 章:内存管理与分配器
├── 14_comptime.zig # 第 14 章:编译期编程
├── 15_generics.zig # 第 15 章:泛型
├── 16_testing.zig # 第 16 章:测试
├── 17_defer.zig # 第 17 章:defer / errdefer
├── 18_vectors.zig # 第 18 章:@Vector / SIMD
├── 19_c_interop.zig # 第 19 章:C 互操作
├── 20_stdlib.zig # 第 20 章:标准库常用功能速览
├── 21_interfaces.zig # 第 21 章:接口与多态 (VTable)
├── 22_filesystem.zig # 第 22 章:文件系统 std.Io.Dir
├── 23_threads.zig # 第 23 章:线程与并发 (原子操作 / CAS)
├── 24_build_system.zig # 第 24 章:build.zig 进阶
└── 25_calculator.zig # 第 25 章:综合实战 —— 迷你表达式计算器
macOS:
brew install zig # 0.16.0 或更新
zig version
Linux / Windows 可从 https://ziglang.org/download/ 下载预编译包。
# 1. 查看所有章节
zig build run
# 2. 运行指定章节(可以多个)
zig build run -- 1 5 10
# 3. 运行全部章节
zig build run -- all
# 4. 运行所有 test 块
zig build test
# 5. 仅运行某一章的 test
zig test src/14_comptime.zig
- 按章节顺序循序渐进,每一章都可以独立编译和运行。
- 每个章节文件都有:
- 学习目标注释(文件头部)
pub fn run() !void演示函数- 若干示例 + 详细注释
- 文件末尾"本章知识点总结"
- 至少 1 个
test块,可通过zig build test验证
- 遇到不理解的内建函数(
@xxx)可查阅:https://ziglang.org/documentation/master/ - 修改代码、触发编译错误也是非常好的学习方式 —— Zig 的错误信息写得很清楚。
本项目针对 Zig 0.16 的 API 编写。相比 0.11/0.12,主要变化:
main(init: std.process.Init)新签名std.ArrayList/std.io做了大量重构DebugAllocator取代GeneralPurposeAllocatorstd.time精简为仅保留单位常量- 移除了不稳定的 async/await
如果你使用更旧的 Zig 版本,部分 API 需自行调整。