第四章:表达式
级别 1 — 入门
C 和 Auto 如何通过运算符和求值来组合值。
表达式是任何程序的主力。每一次计算——从两个数相加到决定走哪个分支——最终都归结为求值一个表达式。C 提供了丰富的运算符集;Auto 保持了相同的能力,但以更安全、更可读的形式呈现。
4.1 操作数与运算符
操作数是运算符作用的值。运算符指定对其操作数执行什么操作。C 按操作数数量对运算符进行分类:
| 元数 | C 示例 | 含义 |
|---|---|---|
| 一元 | -x | 取反 |
| 二元 | a + b | 加法 |
| 三元 | a ? b : c | 条件选择 |
Auto 使用相同的分类,但用 if/else 表达式语法替代了三元运算符 ?:。下表将最常见的 C 运算符映射到 Auto 等价物。
| 类别 | C 运算符 | Auto 等价 | 备注 |
|---|---|---|---|
| 算术 | + - * / % | + - * / % | 相同 |
| 自增/自减 | ++ -- | x = x + 1 | 无副作用运算符 |
| 复合赋值 | += -= *= | x = x + y | 显式赋值 |
| 比较 | == != < > <= >= | == != < > <= >= | 相同 |
| 逻辑 | && || ! | and or not | Auto 使用单词形式 |
| 三元 | a ? b : c | if a { b } else { c } | 表达式形式 |
| 位运算 | & | ^ ~ << >> | 相同运算符 | 两种语言都可用 |
要点: Auto 移除了就地修改对象的运算符(
++、--、+=),用普通赋值替代。这使得每个表达式的效果都是显式的。