lua中邏輯運算子and與or的用法

2021-07-25 23:42:10 字數 1205 閱讀 8022

總的來說就是,and返回導致返回值為false的那個值。a and  b,如果a為假就返回a,否則返回b。   or的用法就是返回導致true的那個,  a and b,如果a為真就返回a,否則返回b.

邏輯運算子認為false和nil是假(false),其他為真,0也是true.

and的優先順序比or高

其它語言中的and表示兩者都為真的時候,才返回為真,而只要有乙個假,都返回假.lua雖不僅返回假的語義,還返回導致假的值.也就是說

a and b

在a為false的時候,返回a,否則返回b.

or的處理與之類似,

a or b

在a為true的時候,返回a,否則返回b.

總之,and與or返回的不僅有true/false的語義,還返回了它的值.

a = nil  

b = 1

exp = 1 < 2 and a or b

print(exp == a) --fales

exp = 1 > 2 and a or b

print(exp == b) --true

exp = (1 < 2 and or )[1]

print(exp == a) --true

exp = (1 > 2 and or )[1]

print(exp == b) --true

a = nil  

b = 1

exp = 1 < 2 and a or b

print(exp == a) --fales

exp = 1 > 2 and a or b

print(exp == b) --true

exp = (1 < 2 and or )[1]

print(exp == a) --true

exp = (1 > 2 and or )[1]

print(exp == b) --true

false

true

true

true

不過正確的方案書寫太過複雜,反而弄巧成拙。lua中沒有提供語言內建的支援,還是轉向正常的if/else吧。

當然,如果編碼者能夠斷言c and a or b中的a一定為真,那直接用這種寫法也不會錯,但這就是乙個hack了,不值得推崇。

lua 邏輯運算子小結

lua中的邏輯運算子,認為只有false nil為假,其他的都為真 包括0 空串 a and b 如果a為false,則返回a,否則返回b a or b 如果a為true,則返回a,否則返回b 1 print 4 and5 52 print nil and12 nil3 print false an...

lua中邏輯運算子and與or的用法

總的來說就是,and返回導致返回值為false的那個值。a and b,如果a為假就返回a,否則返回b。or的用法就是返回導致true的那個,a and b,如果a為真就返回a,否則返回b.邏輯運算子認為false和nil是假 false 其他為真,0也是true.and的優先順序比or高 其它語言...

php位運算子與邏輯運算 php 邏輯運算子 和

在php中,邏輯運算子無非是將值進行邏輯運算。還有其它用法嗎?先看看以下的 吧。提前給出結論就是 or 這兩種運算子在程式中可以加快php 的執行速度。test 李四 test 張三 test 張三來了 echo test 輸出 李四 test 李四 test 張三 test 張三不在這裡 echo...