lua的表達式
算數運算符
1.二元運算符 加 + 減 - 乘 * 除 / 指數 ^ 取模 %2.一元運算符 負號 -
注意:
1.這些運算符都可以用來操作實數。
b = 1
c = 2
d = 3
print(b + c - d) => 0
print(b * c / d) => 0.6666666667
print(b^2) => 1
關係運算符
小於 <大於 >
小於等於 <=
大於等於 >=
等於 ==
不等於 ~=
注意:
1. 關係運算符的運算結果都是true或者false
b = 1
c = 2
print(b < c) => true
print(b == c) => false
2.這裏注意不等於號是~=
print(b ~= c) => true
3.nil只能自身相等
4.兩個類型不相同的值是不相同的。
a = 100
b = "100"
print(a == b) =>false
5.table,userdata,function比較的是指向的引用,或者說是指向的對象,只有指向的是同一個對象時才相等。
a = {}
b = {}
c = b
print(a == b) => false
print(b == c) => true
邏輯運算符
或 or與 and
非 not
注意:
1.所有邏輯運算符將false和nil視爲假,其他任何都視爲真。
a = nil
b = false
c = true
print(not a) => true非假爲真
2.對於and來說,如果第一個操作數爲假,就返回第一個操作數,不然返回第二個操作數。
print(a and c) => nil
3.對於or來說,如果第一個操作數爲真,就返回第一個操作數,不然就返回第二個操作數。
print(a or false) => false nil和false都是假,返回第二個操作數
print(a or c) => true c爲真
運算符優先級
從高到低排列^
not #(獲取table或者字符串的長度) -(負號)
* / %
+ -
..(字符串連接負號)
< > <= >= ~= ==
and
or
table的構造
1.最簡單的就是 {}a = {}
2.以數組方式初始化,數字爲索引
b = {"one","two","three","four"}
print(b[1]) => one
print(b[2]) => two
print(b[3]) => three
print(b[4]) => four
兩種寫法的意義是相同的
3.key-value風格的table
c = {x=100,y=200}
print(c["x"]) => 100
print(c["y"]) =>200
也可以這麼寫
print(c.x) =>100
print(c.y) => 200
4.可以在創建之後添加或刪除字段
d = {}
d.age = 10 創建之後動態添加key
d[2] = "xiaoming" 也可以添加索引
d[2] = nil 刪除字段
d = nil 刪除table