来自:https://www.cnblogs.com/Jqxing/p/4807719.html
这边并非说lua低级,为了方便区分才这么写的。
高级语言中的逻辑运算符是&&,||,!
a&&b : 当a和b都为真, 结果返回为真,当a或者b有一个为假,结果返回为假
a||b:当a和b中的一个为真时,结果返回为真,当a和b同时为假,结果返回为真
!a:当a为真时,结果返回为假,当a为假时,结果返回为真
lua语言中的逻辑运算符and,or,not(从字面意思上理解和高级语言中的意思差不多,但是返回结果差很多)
a and b:当a为真时返回b,当a为假时,返回a <=> 条件表达式 a?b:a
a or b:当a为真时返回a, 当a为假时返回b <=>条件表达式 a?a:b
not a:当a为真时返回假,当a为假时返回真 <=>条件表达式 a?false:true
not和其他高级语言中的!意思是一样的,返回的是一个逻辑值真或者加
但是and,or和&&,||的区别在与前者返回一个具体的值,后者返回一个逻辑真或者假
lua小技巧: x = x or b <=> x?x:b --如果x没有值,则将b的值赋值给他 (a and b) or c <=> a?b:c --a为真,返回b 否则返回c