Lua 筆記 表示式

2021-09-23 19:54:15 字數 1453 閱讀 3205

表示式用於表示值。lua的表示式中可以包含數字常量、字面字串、變數、一元和二元操作符及函式呼叫。另外有別於傳統的是,表示式中還可以包括函式定義和table構造式。

lua支援常規的算術操作符有:二元的+、-、*、/、^、%,及一元 - (負號)。取模操作符計算結果的符號永遠與第二個引數相同。

lua提供的關係操作符有:>、<、>=、<=、==、~=。所有這些操作符的運算結果都是true或false。

邏輯操作符有and、or 和not 。與條件控制語句一樣,所有的邏輯操作符將false 和nil 視為假,其他視為真。對於操作符and 來說,如果它的第乙個運算元為假,就返回第乙個運算元,不然返回第二個運算元。對於操作符or 來說,如果它的第乙個運算元為真,就返回第乙個運算元,不然返回第二個運算元。

print(4 and 5)        -->5

print(nil and 3)      -->nil

print(false and 3)    -->false

print(4 or 5)         -->4

print(false or 5)     -->5

print(not nil)        -->true

print(not false)      -->true

print(not 0)          -->false

print(not not nil)    -->false

要在lua中連線兩個字串,可以使用操作符「.."(兩個點)。如果其任意乙個運算元是數字的話,lua會將這個數字轉換成乙個字串:

print("hello ".."world")        -->hello world

print(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程式中的注釋,很多人可能使用 也就是說 後面跟著任意多個字元,然後跟...