Lua入門教程 3.表達式

0x03 表達式

算術操作符

支持常規的算術操作符:二元的 + - * / ^ %
一元的 -
算術操作與C等語言一致

關係操作符

Lua提供了以下的關係操作符:<,>,<=,>=,~= 所有這些操作符的運算結果都是truefalse

== ~=用於相等性測試,這兩個操作符可以應用於任意兩個值。如果值具有不同類型則Lua認爲它們是不相等的,否則Lua會根據它們的類型來比較兩者。

對於table userdatafunction,Lua是作引用比較的。

    a = {}; a.x = 1; a.y = 0
    b = {}; b.x = 1; b.y = 0

    a = c

上面的代碼結果爲 a==c a~=b

不同類型的值做比較時返回false

邏輯操作符

邏輯操作符有and or not ,所有的邏輯操作符都返回true false nil
- 對於 and 來說,如果第一個操作數爲假,就返回第一個操作數,否則返回第二個操作數
- 對於 or 來說,如果第一個操作數爲真,就返回第一個操作數,否則返回第二個操作數

a>b?a:b

andor來表示則是

max = (x > y) and x or y

- 當x > y 時,就返回and後面的x,
- 當x <= y 時,or前面的表達式爲false,於是返回or後面的y

字符串連接

連接操作符:..

print("Hello" .. "World")  -> HelloWorld
print(0..1)  -> 01

優先級

Item
^
not # -(一元)
* / %
..
< > <= >=
and
or

table構造式

可以初始化數組 也可以初始化鍵值對

    num = {"one", "two", "three"}
    a = {x=10, y=20}

若要以0開始索引,則可以這麼做:

    days = {[0] = "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}

構造式 a = {x=0, y=0} 等價於 a = {["x"] = 0, ["y"] = 0}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章