表示式用於表示值。lua的表示式中可以包含數字常量、字面字串、變數、一元和二元操作符及函式呼叫。另外有別於傳統的是,表示式中還可以包括函式定義和table構造式。
lua支援常規的算術操作符有:二元的+、-、*、/、^、%,及一元 - (負號)。取模操作符計算結果的符號永遠與第二個引數相同。
lua提供的關係操作符有:>、<、>=、<=、==、~=。所有這些操作符的運算結果都是true或false。
邏輯操作符有and、or 和not 。與條件控制語句一樣,所有的邏輯操作符將false 和nil 視為假,其他視為真。對於操作符and 來說,如果它的第乙個運算元為假,就返回第乙個運算元,不然返回第二個運算元。對於操作符or 來說,如果它的第乙個運算元為真,就返回第乙個運算元,不然返回第二個運算元。
print(4 and 5) -->5print(nil and 3) -->nil
print(false and 3) -->false
print(4 or 5) -->4
print(false or 5) -->5
print(not nil) -->trueprint(not false) -->true
print(not 0) -->false
print(not not nil) -->false
要在lua中連線兩個字串,可以使用操作符「.."(兩個點)。如果其任意乙個運算元是數字的話,lua會將這個數字轉換成乙個字串:
print("hello ".."world") -->hello worldprint(0 ..1) -->01
請記住,lua中的字串是不可變的值。連線操作符只會建立乙個新的字串,而不會對其原運算元進行任何修改。
lua操作符的優先順序如下所示(從高到低):
^not # -(一元負號)
* / %
+ -(二元減號)
..< > <= >= ~= ==
andor
在二元操作符中,除了指數操作符」^「和連線操作符」..「是」右結合「的,所有其他操作符都是」左結合「的。
構造式是用於建立和初始化table的表示式。
days =print(days[1]) -->m
a = --等價於 a={}; a.x=1; a.y=2
polyline = }print(polyline[3].x) -->0
在構造式中還可以用分號代替逗號。通常會將分號用於分隔構造式中不同的成分:
lua學習之表示式
3.1 算術運算子 二元運算子 加減乘除冪 一元運算子 負值 這些運算子的運算元都是實數。3.2 關係運算子 如果兩個值d型別不同,則不等 lua通過引用比較tables,userdata,functions,也就是當且僅當表示同乙個物件時才相等。3.3 邏輯運算子 and or not a and...
Lua正規表示式
正規表示式作為一種通用的算式,大量用於文字處理邏輯中,其主要好處是速度能夠達到極致,而且 量通常會非常少,本篇主要介紹lua中的正則使用,由於這樣的文章網上隨處都可以搜到,而且不乏整理的不錯的,這裡就不想再重新做這件事情。正規表示式主要處理匹配問題,即通過給定語義萬用字元串,返回匹配成功的字串列表。...
lua正規表示式
一樣,都匹配乙個字元的0次或多次出現,但是他進行的是最短匹配。某些時候這兩個用起來沒有區別,但有些時候結果將截然不同。比如,如果你使用模式 a w 來查詢標示符,你將只能找到第乙個字母,因為 w 永遠匹配空。另一方面,假定你想查詢c程式中的注釋,很多人可能使用 也就是說 後面跟著任意多個字元,然後跟...