lua 中的邏輯操作符有 and, or, 以及 not。和控制結構一樣,所有的邏輯操作符把 false 和 nil 都作為假,而其它的一切都當作真。
and or not
邏輯運算子認為false和nil是假(false),其他為真,0也是true.
and和or的運算結果不是true和false,而是和它的兩個運算元相關。
a and b -- 如果a為false,則返回a,否則返回b
a or b -- 如果a為true,則返回a,否則返回b
例子:
print(4 and 5) --> 5
print(nil and 13) --> nil
print(false and 13) --> false
print(4 or 5) --> 4
print(false or 5) --> 5
10 or 20 --> 10
10 or error() --> 10
nil or "a" --> "a"
nil and 10 --> nil
false and error() --> false
false and nil --> false
false or nil --> nil
10 and 20 --> 20
乙個很實用的技巧:如果x為false或者nil則給x賦初始值v
x = x or v
等價於:
if not x then
x = v
end
and的優先順序比or高。
c語言中的三元運算子
a ? b : c
在lua中可以這樣來實現:
(a and b) or c
not的結果只返回false或者true
print(not nil) --> true
print(not false) --> true
print(not 0) --> false
print(not not nil) --> false
原文:lua乙個小巧指令碼語言學習筆記
lua教程表示式邏輯運算子-10
賦值運算子 邏輯運算子 表示式
賦值運算子 num 1 等價於 num num 1 num 1 等價於 num num 1 num 2 等價於 num num 2 num 2 等價於 num num 2 num 2 等價於 num num 2 整除 num 2 等價於 num num 2 餘數 num 2 等價於 num num ...
linux shell 邏輯運算子 邏輯表示式詳解
shell的邏輯運算子 涉及有以下幾種型別,因此只要適當選擇,可以解決我們很多複雜的判斷,達到事半功倍效果。一 邏輯運算子 邏輯卷標表示意思 1.關於檔案與目錄的偵測邏輯卷標!f常用!偵測 檔案 是否存在 eg if f filename d常用!偵測 目錄 是否存在 b偵測是否為乙個 block ...
linux shell 邏輯運算子 邏輯表示式詳解
shell的邏輯運算子 涉及有以下幾種型別,因此只要適當選擇,可以解決我們很多複雜的判斷,達到事半功倍效果。一 邏輯運算子 邏輯卷標表示意思 1.關於檔案與目錄的偵測邏輯卷標!f常用!偵測 檔案 是否存在 eg if f filename d常用!偵測 目錄 是否存在 b偵測是否為乙個 block ...