运算符
介绍
Wave语言提供多种运算符,可以进行变量间的计算、逻辑判断、比较、位运算等。
本文档将按照类别来说明Wave中可以使用的主要运算符,并提供其工作方式和示例。
运算符分为以下类别:
- 算术运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 其他特殊运算符
算术运算符
算术运算符对数字数据执行基本的数学运算。
| 运算符 | 说明 | 示例(a = 10,b = 3) |
|---|---|---|
+ | 加法 | a + b → 13 |
- | 减法 | a - b → 7 |
* | 乘法 | a * b → 30 |
/ | 除法 | a / b → 3(整数除法) |
% | 取余运算 | a % b → 1 |
比较运算符
比较运算符返回用于比较两个值的结果作为bool值。
| 运算符 | 说明 | 示例(a = 10,b = 3) |
|---|---|---|
== | 等于 | a == b → false |
!= | 不等于 | a != b → true |
< | 小于 | a < b → false |
> | 大于 | a > b → true |
<= | 小于等于 | a <= 10 → true |
>= | 大于等于 | a >= b → true |
逻辑运算符
逻辑运算符处理关于bool值的真/假组合。
| 运算符 | 名称 | 说明 | 例子 |
|---|---|---|---|
&& | 逻辑与 | 只有两个值都是 true 时才返回 true | true && false → false |
| \`\ | 逻辑或 | 只要其中一个为 true,结果就是 true | \`true \ |
! | 逻辑非 | 将 true 反转为 false,将 false 反转为 true | !true → false |
位运算符
位运算符以位为单位操作整数数据。
| 运算符 | 名称 | 说明 | 例子 |
|---|---|---|---|
& | 位与 | 只有两个位都为1时结果为1 | a & b → 2 |
| \`\ | 位或 | 只要其中一个位为1,结果就是1 | b→7\` |
^ | 位异或 | 两个位不同时结果为1 | a ^ b → 5 |
~ | 位非 | 反转位 | ~a → -7 |
<< | 左移运算 | 将位向左移动 | a << 1 → 12 |
>> | 右移运算 | 将位向右移动 | a >> 1 → 3 |
赋值运算符
用于将值存储在变量中。 在大多数情况下,可以与算术运算符结合进行简化。
| 运算符 | 说明 | 例子 (a = 5) |
|---|---|---|
= | 基本分配 | a = 10 |
+= | 加法后分配 | a += 2 → 7 |
-= | 减法后分配 | a -= 1 → 4 |
*= | 乘法后分配 | a *= 3 → 15 |
/= | 除法后分配 | a /= 5 → 1 |
%= | 取余后分配 | a %= 4 → 1 |
其他特殊运算符
Wave还提供了以下具有独特或特殊意义的运算符。
| 运算符 | 名称 | 说明 | 例子 |
|---|---|---|---|
?? | null合并运算符 | 左值为null时使用右值 | a ?? b → a为null则b |
?: | 条件运算符(三元运算符) | 根据条件选择值 | 条件 ? 真值 : 假值 |
in | 检查是否包含 | 检查值是否包含在 集合中 | "a" in list |
is | 类型比较运算符 | 检查值的类型 | x is i32 |
!& | NAND | 逻辑NAND运算 | 高级逻辑运算 |
| \`!\ | NOR | 逻辑NOR运算 | 高级逻辑运算 |
~^ | XNOR | 逻辑XNOR运算 | 高级逻辑运算 |
总结
Wave提供从数学运算到逻辑判断、位操作、条件分支的各种运算符。 这些运算符与变量交互或构成条件,是复杂计算或控制流程的必要工具。
每个运算符的优先级和结合方向随后可以在“优先级和计算顺序”部分处理。