Zero 文档
简洁、以示例为主的 Zero 参考文档。先读概念,再看代码,然后在 Coddy 学习旅程中动手练习。
入门
- Zero 是什么Zero 是 Vercel Labs 推出的实验性系统编程语言,它把 AI 智能体当作一等用户,而不只是为人类设计。本文介绍 Zero 是什么,以及它为什么存在。
- 安装 Zero只需一条 curl 命令就能安装 Zero 编译器和工具链。本文介绍如何安装、把它加入 PATH,并用 `zero --version` 验证安装结果。
- Hello, World你的第一个 Zero 程序:经典 hello world 的每个部分是什么意思,怎样用 `zero run` 运行它,以及为什么一个只有五行的程序就已经用到了 `World`、`raises` 和 `check`。
- Zero CLI带你了解 `zero` 命令行工具:日常会用到的子命令、每个命令输出什么,以及 `--json` 参数如何把每个命令变成智能体可读取的结构化数据。
- Zero 包Zero 包的结构:`zero.json` 清单文件、`src/` 目录,以及让一个包从同一棵源代码树生成可执行文件、库和测试的构建目标机制。
语言基础
- let 绑定Zero 中的 `let` 怎么用:声明局部绑定、类型推断和显式类型标注,以及 Zero 为什么只用一种绑定形式,而不是多个关键字。
- 基本类型Zero 开箱即用的内置类型:各种宽度的有符号和无符号整数、浮点数、布尔值、字符、字符串,以及空类型 Void。
- 函数Zero 中的函数是怎么工作的:`fun` 关键字、带类型的参数、返回类型、`pub` 可见性修饰符,以及 `raises` 在函数签名中的作用。
- If/ElseZero 中的 `if` 和 `else` 怎么用:布尔条件、分支代码块、为什么没有真假值隐式转换,以及条件语句如何与 `match` 配合实现更丰富的分支。
- While 循环Zero 目前的 `while` 循环怎么用:条件、循环体、早期版本为什么没有 `for` 和 `do-while`,以及循环和显式副作用有什么关系。
数据建模
- Shape(结构体)shape 是 Zero 中类似结构体的积类型。本文结合官方示例,介绍如何声明 shape、构造值、读取字段,以及在函数之间传递它们。
- 泛型Zero 中的泛型怎么用:在函数和 shape 上声明类型参数、调用泛型函数,以及用类型别名把冗长的参数组合变成简洁的名字。
- 枚举Zero 中的 `enum` 怎么用:声明一组固定的具名变体、比较值,以及 `enum`(纯标签)和 `choice`(带标签的联合)之间的界线。
- Choice 与 MatchZero 如何用 `choice` 声明标签联合,又如何用 `match` 对它的变体做穷尽分支:这就是 Zero 版本的和类型与模式匹配。