馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊
x
寫腳本最常用的就是這些運算符了,無論加減乘除還是邏輯關係,只有搞明白了最基礎的語法,才能寫出來腳本,歡迎高手前來指導,發散思維希望大家都能用腳本精靈寫出更棒的遊戲腳本
算術運算符
二元運算符:+ - * / ^ (加減乘除冪)
一元運算符:- (負值)
這些運算符的操作數都是實數。
關係運算符
< > <= >= == ~=
這些操作符返回結果為false或者true;==和~=比較兩個值,如果兩個值類型不同,Lua認為兩者不同;nil只和自己相等。 Lua通過引用比較tables、userdata、functions。也就是說當且僅當兩者表示同一個對象時相等。
a = {}; a.x = 1; a.y = 0
b = {}; b.x = 1; b.y = 0
c = a
a==c but a~=b
Lua比較數字按傳統的數字大小進行,比較字符串按字母的順序進行,但是字母順序依賴於本地環境。
當比較不同類型的值的時候要特別注意:
"0" == 0 -- false
2 < 15 -- true
"2" < "15" --false (alphabetical order!)
為了避免不一致的結果,混合比較數字和字符串,Lua會報錯,比如:2 < "15"
邏輯運算符
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
一個很實用的技巧:如果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將數字轉成字符串。
print("Hello " .."World") --> HelloWorld
print(0 .. 1) --> 01
優先級
從高到低的順序:
^
not - (unary)
* /
+ -
..
< > <= >= ~= ==
and
or
除了^和..外所有的二元運算符都是左連接的。
a+i < b/2+1 <--> (a+i) < ((b/2)+1)
5+x^2*8 <--> 5+((x^2)*8)
a < y and y <= z <--> (a < y) and (y <= z)
-x^2 <--> -(x^2)
x^y^z <--> x^(y^z) |
評分
-
查看全部評分

|