綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[教程] 【新手】算術、關係、邏輯、連接運算符及優先級

[複製連結] 查看: 2477|回覆: 2|好評: 3
跳轉到指定樓層
樓主
swx_9003 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2013-12-10 10:54

馬上加入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)
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 3碎鑽 +2 幫助 +3 收起 理由
z62373212002 + 1 + 1 非常讚
hugomandanny + 1
san19800113 + 1 + 1 很給力!

查看全部評分

收藏收藏2 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
HunterIngress | 收聽TA | 只看該作者
發表於 2014-1-9 22:31
請問以上的指令 按健精靈也能用嗎?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
mmko4921 | 收聽TA | 只看該作者
發表於 2014-2-5 16:15
哪種語言編輯他
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則