--算術(shù)運算符
--二元運算符:+ - * / ^ (加減乘除冪)
--一元運算符:- (負值)
--這些運算符的操作數(shù)都是實數(shù),Lua中沒有自增自減的運算符。
--關(guān)系運算符
-- > = >= == ~=
--這里需要注意的是不等于是用~=表示的
--這些操作符返回結(jié)果為false或者true;==和~=比較兩個值,如果兩個值類型不同,Lua認為兩者不同;
--nil只和自己相等。Lua通過引用比較tables、userdata、functions。也就是說當且僅當兩者表示同一個對象時相等。
--Lua比較數(shù)字按傳統(tǒng)的數(shù)字大小進行,比較字符串按字母的順序進行,
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的運算結(jié)果不是true和false,而是和它的兩個操作數(shù)相關(guān)。
--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中可以這樣實現(xiàn):(a and b) or c
local a = 1
local b = 2
local num = (a>b and a) or b
print(num) -->2
--連接運算符
--..兩個點
--字符串連接,如果操作數(shù)為數(shù)字,Lua將數(shù)字轉(zhuǎn)成字符串。注意數(shù)字之間的空格
print("Hello ".."lua") --> Hello lua
print(0 .. 1) --> 01