LUA教程表示式邏輯運算子 10

2021-10-07 23:56:40 字數 1446 閱讀 5783

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 ...