lua 逻辑运算 and, or, not

这边并非说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