lua論理演算and,or,not【回転】

1010 ワード

ソース: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