lua 邏輯運算子小結

2022-09-17 00:09:12 字數 900 閱讀 9587

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

and13) --

false

4print(4

or5) --45

print(false

or5) --

5

乙個很實用的技巧:如果x為false或者nil則給x賦初始值v

x = x or v

等價於

if

not x then

x =v

end

c語言中的三元運算子

a ? b : c

在lua中可以這樣實現(《programming in lua》):

(a and b) or c

這樣的實現其實有些問題,就是當 b 為 fasle 或者 nil 的時候,無論 a 為 true 還是 false ,運算結果都是返回的 c、

所以,正確的實現方式如下:

(a and  or )[1]

解釋一下, 、 必然不會是 false 或者 nil。a 為 true ,返回 , a為 false ,返回 ,所以,表示式的返回結果必然是乙個table,且這個table中只要乙個元素,通過下標 1 直接訪問即可。

邏輯運算子( , )

操作!是的 運算子不執行布林操作,有只有乙個運算元,位於其權利,和唯一,它確實是逆是它的價值,生產假如果真實,真實的,如果其運算元其運算元為false。基本上,它返回布林值,評價其運算元相反。例如 1 2 3 4 5 5 evaluates to false because the expressi...

邏輯運算子

邏輯運算子 符號 作用 符號 作用 或and 與 或 not 非 或or 或 xor 異或 與 運算 1 或者 and 是 與 運算的兩種表達方式。如果所有資料不為0且不為空值 null 則結果返回1 如果存在任何乙個資料為0,則結果返回0 如果存在乙個資料null且沒有資料為0,結果返回null。...

邏輯運算子

邏輯與 當兩個運算元的值都為true時,運算結果為true 邏輯或 只要兩個運算元中有乙個值為true時,運算結果就為true 邏輯非 對運算元取反,即true值非運算的結果false,false值非運算的結果為true 案例 test1 var a 1,b 0,c hello a b c worl...