在學習一門語言的時候,運算子也是一項必要的單元,在用lua寫成的**中,必定會用到運算子,現在就lua的運算子做一下總結:
運算子一般分為算術運算子,關係運算子和邏輯運算子,連線運算子
算術運算子:
二元運算子:+ - * / ^ (加減乘除冪)
一元運算子:- (負值)
這些運算子的運算元都是實數
關係運算子:
< >
<= >= == ~=
這些操作符返回結果為false或者true;==和~=比較兩個值,如果兩個值型別不同,lua認為兩者不同;nil只和自己相等。lua通過引用比較tables、userdata、functions。也就是說當且僅當兩者表示同乙個物件時相等
注意:lua比較數字按傳統的數字大小進行,比較字串按字母的順序進行,但是字母順序依賴於本地環境
為了避免不一致的結果,混合比較數字和字串,lua會報錯,比如:2 < 「15」
邏輯運算子:
and
ornot
邏輯運算子認為false和nil是假(false),其他為真,0也是true.
and和or的運算結果不是true和false,而是和它的兩個運算元相關。
a
and b -- 如果a為false,則返回a,否則返回b
aor b -- 如果a為true,則返回a,否則返回b
print(4
and5) -->
5print(nil and
13) --> nil
print(false
and13) -->
false
print(4
or5) -->
4print(false
or5) -->
5--以此證明and和or返回的不是true或者是false,而是和兩個運算元相關
x = x or v --如果x為false或者nil則給x賦初始值v
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將數字轉成字串。
print("hello " .. "world") --> hello world
print(0 .. 1) --> 01
優先順序:從高到低的順序
^
not - (unary)
* /+ -
..< > <= >= ~= ==
andor
lua 範例 Lua 運算子
lua 運算子 運算子是乙個特殊的符號,用於告訴直譯器執行特定的數學或邏輯運算。lua提供了以下幾種運算子型別 算術運算子 關係運算子 邏輯運算子 其他運算子 算術運算子 下表列出了 lua 語言中的常用算術運算子,設定 a 的值為10,b 的值為 20 操作符描述例項 加法a b 輸出結果 30 ...
Lua(七) 運算子
注意lua中沒有 這些運算子 加 減 乘 除 餘 冪 負lua中沒有float,double等型別,所有數字都是number型別,所以計算所得數字是多少就是多少 lua中 只能用作數字計算,不能用作字串連線 等於 不等於 大於等於 小於等於 大於 and 邏輯與 or 邏輯或 not 邏輯非 lua...
Lua 運算子相關
運算子1.算數運算子 冪 2.關係雲演算法 不等於 3.邏輯運算子 and 與 等於 都為true or 或 等於 有乙個為true,則true not 非 等於 a為true,not a 則取反 為 false x,y 2,4s x y print s s x y print s s x y pr...