aardio 文档

操作符优先级

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中赋值操作符不能用于表达式并返回值,只能用于独立的赋值语句

除了**++外所有的二元运算符都是左连接的.

Markdown 格式