lua中的逻辑运算

lua中的逻辑运算只有:and   or  not

not的结果总是只返回true或false,例如

local a=10
print(not a)  打印的结果是 false

local b=nil   或者 local b=false
print(not b) 打印的结果是true

and和or支持短路运算规则,只是运算结果不是true或false,而是运算符左右两边的值也就是说结果是最后一次进行判断的那个值,例如

print(10 and 20) --结果为20,因为10为真,and会继续计算后面的20
print(nil and 20) --结果为nil,因为nil为假,and提前结束运算
print(10 or 20) --结果为10,因为10为真,or提前结束运算
print(nil or 20) --结果为20,因为nil为假,or会继续运算