表达式:
1.算数运算符
二元运算符:+-*/^(加,减,乘,除,幂)
一元运算符:-(负值)
2.关系运算符
< > <= >= == ~=
这些操作符返回结果为false或者true,==和~= 比较两个值,如果两个值类型不同,Lua认为两者不同;nil只和自己相等。当且仅当两者表示同一对象是相等。代码:test8.lua
逻辑运算符:
And or not
逻辑运算符认为false和nil为假,其他为真,0也是true
And 和or的运算结果不是true和false,而是和他的两个操作数相关。
a and b --如果a为false,则返回a,否则返回b
a or b --如果a 为true,则返回a,否则返回b
print(4 and 6)
print(nil and 13)
print(false and 13)
print(4 or 5)
print(false or 5)
一个很实用的技巧:如果x为false或者nil则给x赋初始值v
x = x or v
等价于
if not x then
x = v
end
三目运算符:
C语言 a ? b : c
Lua :(a and b) or c
not 的结果一直返回true或者false
连接运算符:
.. --两个点
字符串连接,如果操作说为数字,那么,Lua把数字转换为字符串
print("Hello" .. "World")
print(0 .. 1)
print("0" .. 1)