aardio 操作符优先级与 C系语言基本兼容,唯一的区别是:位运算符优先级略高于等式、不等式运算符。从而保证各组运算符的优先级更加有序、并容易记忆。
试图记住所有的运算符优先级是不必要的,建议在易于混淆优先级的位置用括号明确标明优先级。
操作符 | 优先级 | 结合 | 说明 |
---|---|---|---|
.. |
0(最高) | 左向右 | 访问全局变量, 等价于 global. |
:: |
0(最高) | 左向右 | 访问全局常量 |
成员操作符. 下标操作符 [] 直接下标 [[]] 调用操作符 () 元表操作符 @ |
1 | 左向右 | . 、[] 、 [[]] 都是用于访问对象成员的操作符。 调用操作符用于调用函数 或类构造函数,例如 print("参数") 。 |
() | 2 | 左向右 | 用于组合表达式并改变优先级。 |
** |
3 | 右向左 | 乘方运算 |
操作符 | 优先级 | 结合 | 说明 |
---|---|---|---|
! |
4 | 左向右 | 逻辑非 |
not | 5 | 左向右 | 逻辑非 |
- |
6 | 左向右 | 取负 |
~ |
7 | 左向右 | ~ 按位取反 |
操作符 | 优先级 | 结合 | 说明 |
---|---|---|---|
* 乘 / 除 % 取模 |
8 | 左向右 | |
+ 加 - 减 |
9 | 左向右 |
操作符 | 优先级 | 结合 | 说明 |
---|---|---|---|
<< 按位左移 >> 按位右移 >>> 无符号右移 |
10 | 左向右 | |
& 按位与 ^ 按位异或 | 按位或 |
11 | 左向右 | C 语言中位运算符的优先级 低于 == 、!= |
操作符 | 优先级 | 结合 | 说明 |
---|---|---|---|
++ |
12 | 右向左 | 连接运算符 |
操作符 | 优先级 | 结合 | 说明 |
---|---|---|---|
< 小于 <= 小于等于 >= 大于等于 > 大于 |
13 | 左向右 |
操作符 | 优先级 | 结合 | 说明 |
---|---|---|---|
== != === !== |
14 | 左向右 | 等于、不等于、恒等、非恒等于 |
&& and |
15 | 左向右 | 逻辑与 |
|| or |
16 | 左向右 | 逻辑或 |
? |
17 | 左向右 | 逻辑与、该运算符类似于and但优先级更低 |
: |
18 | 左向右 | 逻辑或、该运算符类似于or但优先级更低 |
操作符 | 优先级 | 结合 | 说明 |
---|---|---|---|
= += -= *= /= &= ^= |= <<= >>= |
最低优先级 | 由右向左 | aardio中赋值操作符不能用于表达式并返回值,只能用于独立的赋值语句 |
除了**
和++
外所有的二元运算符都是左连接的.