Lua中的逻辑运算符:与(and)、或(or)和非(not),与其他语言的逻辑运算符功能一致,这里不做赘述。只说一点,所有的逻辑运算符将false和nil视为假,其他任何东西视为真,0也视为真。
这里要说的是and和or的一些特殊用法。
当连接2个操作数时:
1.对于运算符and来说,如果它的第一个操作数为假,就返回第一个操作数;不然返回第二个操作数。
所以,
a = b and c
等价于:
if not b then
a = b
else
a = c
end
举个栗子:
print(2 and 3)
print(0 and 3)
print(nil and 7)
print(false and 7)
运行结果:
2.对于运算符or来说,如果它的第一个操作数为真,就返回第一个操作数,不然返回第二个操作数。
所以 ,
a = b or c
等价于: