Lua的逻辑运算遵循短路求值(Short-circuit evaluation)原则,即只在必要时才对第二个操作数进行求值。
and 查询首个false值;
local a = 1
local b = nil
local c = false
local d = 4
print(a and b and c and d)
--> nil
如无false值,则返回最末尾的值。
local a = 1
local b = 2
local c = 3
local d = 4
print(a and b and c and d)
--> 4
or 查询首个true值;
local a = nil
local b = 2
local c = 3
local d = false
print(a or b or c or d)
--> 2
如无true值,则返回最末尾的值。
local a = nil
local b = false
local c = nil
local d = false
print(a or b or c or d)
--> false
对于三目运算符 a and b or c