用途:本指南面向 Zig 开发者,提供一套类型优先的开发模式,主张先定义类型契约再实现逻辑,借助编译器保证完整性并在编译期捕获非法配置。
主要能力:用标签联合体表达互斥状态,替代布尔标志加可选字段的结构体;用显式错误集记录失败模式,避免 anyerror 隐藏错误;用枚举封装 UserId、OrderId 等不同领域 ID 防止混用;用 comptime 与 @compileError 校验不变量(如缓冲区大小);用非穷尽枚举兼容外部可能新增的变体。
编码约定:错误处理上,函数统一返回错误联合 !T,用 errdefer 做错误路径清理、defer 做无条件清理,switch 覆盖全部分支并提供 else 返回错误或 unreachable;内存管理上显式传入分配器,测试中用 std.testing.allocator 检测泄漏,批量临时分配可用 arena;类型上优先 const、优先切片而非裸指针,避免 anytype、改用显式 comptime T: type;日志用 std.log.scoped 建立模块级命名空间,按 err、warn、info、debug 分级;配置从环境变量读取并集中到 Config 结构体,缺失必填项时干净退出;可选值用 orelse 提供默认值,仅在 null 属程序错误时用 .?。
模块与测试:Zig 习惯上文件内聚度较高,测试与实现放同一文件,comptime 泛型置于文件作用域,仅当关注点真正分离时才拆分。新增逻辑应补充测试,并用 std.testing.allocator 自动捕获内存泄漏。
适用场景:编写 Zig 库或应用、设计公开 API、做编译期约束与资源安全的内存代码时参考。
限制:资料未提供安装命令、版本兼容性细节、性能基准或收费信息;高级主题(自定义容器、C 互操作、内存泄漏调试)仅指向 GENERICS.md、C-INTEROP.md、DEBUGGING.md,正文未展开。