1. lua中的运算符结合性及优先级
1.1. 左结合及右结合性
左结合就是如果连续两个同一优先级的运算符号挨着,那么相对于右边的一个加括号。
则以下代码可以写成
a+b+c <---> (a+b)+c
a+b+c+d <---> ((a+b)+c)+d
a+b+c+d+e+... <---> (..((((a+b)+c)+d)+e)+..)
lua中的右结合运算符只有 “^” 以及 ".. "
1.2. 优先级
在统一优先级的情况下,使用左右结合太特性进行结合。
但如果是不同优先级,则按照优先级顺序依次处理,如下例子
a+b*c <---> a+(b*c)
a or b and c <---> a or (b and c)
a or b > c <---> a or (b > c)
lua运算符优先级表
运算符 |
---|
^ |
not、#、-(一元) |
*、 /、 % |
+、 - |
.. |
< 、>、 <=、 >= 、~=、 == |
and |
or |