主要观点:
- Zig 是 Andrew Kelley 设计的编程语言,其官方网站列出三个原则:无隐藏控制流、无隐藏内存分配、无预处理器和宏。
- 对于从 Rust、Go 和 TypeScript 过来的人,Zig 有所不同且有趣,作者用 3 晚时间用 Zig 重写静态网站生成器后分享感受。
关键信息: - 显式分配:Zig 强制思考分配,使用内存需传递分配器并记得释放,返回结构体的
.deinit()
函数等使用方式较复杂。 - 文档:写 Zig 需经常阅读 Zig 源代码理解函数使用等,有多种有用资源如[In-depth Overview]等,错误消息有时较难理解。
- 错误:Zig 编译器错误消息难理解,如标准库错误、模板库随机恐慌等。
- 库:有一些 Zig 库,但大多要么已归档、要么是 C 库包装、要么是未完成或有奇怪错误场景,导致作者自己实现部分功能。
- 字符串:Zig 没有字符串类型,用
[]const u8
,比较需用特定函数std.mem.eql
。 - 无魔法:Zig 强调透明,不使用抽象隐藏样板逻辑等,作者对此持欣赏态度但不确定在大型代码库中的扩展性。
重要细节: - 作者表示因语言和生态系统不成熟导致库的情况,且不意外人们会自己构建库。
- 对于较大项目会选择 Rust 因其安全特性和活跃生态系统,小项目则会用 Zig 这种有趣语言。
- 提到异步函数已从 Zig 中移除。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。