Lua逻辑运算

canglangclient 2015-05-22

Lua逻辑运算符

- and or not

--and 与 or 
--返回的不是true 和 false
--而是它的两个操作数

--[[
 a and b   a为false 返回a
 a or b    a为true 返回a
]]

print( 4 and 5)  --> 5
print( nil and 13) --> nil
print( false and 13) -->false
print( 4 or 5) -->4
print(false or 5) -->5

一个很实用的技巧:如果x为false或者nil则给x赋初始值5

x = x or 5
--[[等价于
if not x then
   x = 5
end
]]

三元运算符在lua中得实现

--a?b:c 用and 和 or表示
print(false and 3 or 4)

not的结果一直返回false或者true

print(not nil) -->true
print(not false) -->true
print(not 0) -->false     0也是true
print(not not nil) -->false

相关推荐