本篇博客學習一下Lua的運算符,比較簡單,我將說明直接寫到了代碼中,代碼如下。
- --算術運算符
- --二元運算符:+ - * / ^ (加減乘除冪)
- --一元運算符:- (負值)
- --這些運算符的操作數都是實數,Lua中沒有自增自減的運算符。
- --關系運算符
- -- < > <= >= == ~=
- --這里需要注意的是不等于是用~=表示的
- --這些操作符返回結果為false或者true;==和~=比較兩個值,如果兩個值類型不同,Lua認為兩者不同;
- --nil只和自己相等。Lua通過引用比較tables、userdata、functions。也就是說當且僅當兩者表示同一個對象時相等。
- --Lua比較數字按傳統的數字大小進行,比較字符串按字母的順序進行,
- print("0" == 0) -- false
- a = {1,2}
- b = {1,2}
- c = a
- print(a==c) -->true
- print(a==b) -->false
- print(2 < 15 ) -- true
- print("2" < "15" ) -- false
- --邏輯運算符
- --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(false and 13) --> false
- print(4 or 5) --> 4
- print(false or 5) --> 5
- --一個很實用的技巧:C語言中的三元運算符a ? b : c 在Lua中可以這樣實現:(a and b) or c
- local a = 1
- local b = 2
- local num = (a>b and a) or b
- print(num) -->2
- --連接運算符
- --..兩個點
- --字符串連接,如果操作數為數字,Lua將數字轉成字符串。注意數字之間的空格
- print("Hello ".."lua") --> Hello lua
- print(0 .. 1) --> 01
最后說明一下運算符的優先級,給大家一張表參考,用到的時候查。