逻辑运算符
逻辑运算符认为false和nil是假(false),其他为真,0也是true.
and和or的运算结果不是true和false,而是和它的两个操作数相关。
a and b – 如果a为false,则返回a,否则返回b
a or b – 如果a为true,则返回a,否则返回b
关系运算符
< > <= >= == ~=
这些操作符返回结果为false或者true;
==和~=比较两个值,如果两个值类型不同,Lua认为两者不同;
”0” == 0 –> false
nil只和自己相等。
Lua比较数字按传统的数字大小进行,比较字符串按字母的顺序进行,但是字母顺序依赖于本地环境。
“0”==0 false
"0"~=0 true
算术运算符
二元运算符:+ - * / ^ %(加减乘除幂余)
一元运算符:- (负值)
这些运算符的操作数都是实数。
连接运算符
字符串连接,如果操作数为数字,Lua将数字转成字符串。
连接符两边必须要有空格
如:
print(“Hello ” .. “World”) –>Hello World
print(0 .. 1) –> 01 注意0和..之间的空格
优先级
^
not - (unary)
* /
+ -
..
< > <= >= ~= ==
and
or
优先级不用使用, 可以使用括号区分优先级