Lua系統函式

2021-07-11 15:34:30 字數 2431 閱讀 6142

table:

t =

table.insert(t, 1, 15)

t 就變成了

如果沒有第二個引數,就自動新增到table末尾

table.remove(t, 1)

t 就變回了

table.sort(tablename,sortfunc)

排序,第二個引數是乙個函式有兩個引數,返回true或false,true的話第乙個引數在前

table.concat()

將乙個字串table連線成乙個完整的字串,第二個可選引數填寫連線符,第三第四個可選引數用於指定第乙個和最後乙個要連線的字串索引

table.maxn(table)

返回指定table中所有正數key值中最大的key值. 如果不存在key值為正數的元素, 則返回0. 此函式不限於table的陣列部分

table.foreachi(table, function(i, v))

會期望乙個從 1(數字 1)開始的連續整數範圍,遍歷table中的key和value逐對進行function(i, v)操作

table.foreach(table, function(i, v))

與foreachi不同的是,foreach會對整個表進行迭代

table.getn(table)

返回table中元素的個數

table.setn(table, nsize)

設定table中的元素個數

math:

常用的數學庫如:sin.asin.deg…

隨機數:math.random()無引數時生成[0,1)的隨機數,整數引數的話生成[1,引數]的整數隨機數;math.randomseed(seed) 使用種子生成隨機數

string:

lua中的字串都是不可變的,以下函式都是返回乙個新字串

string.upper(s) 等價於 s:supper()

string.upper(s) 返回字串s轉換成大寫的副本

string.lower(s) 返回字串s轉換成小寫的副本

string.len(s) 返回字串s的長度

string.rep(s,n) 返回字串s重複n此的結果

string.sub(s,i,j) 從字串s中提取第i個到第j個字元(負數索引代表從字串尾部開始計算,-1代表左後乙個字元,-2代表倒數第二個),j可不填,不填預設-1

string.byte(s, i) 返回字串s中第i個字元的內部數值表示

string.char(num) 將數值轉化成對應的字元

string.formate()格式化字元,見例1,%d 十進位制數,%x 十六進製制,%o 八進位制數,%f浮點數,%s字串

模式相關:

string.find(s, s1, index)返回兩個值,匹配到的起始索引和結尾索引,如果沒有找到,返回nil;此方法可以跟string.sub配合來提取目標字串.index可忽略,表示從第幾個位置開始搜尋

string.match() 引數和find類似,返回與模式相匹配的那部分子串,此函式還有捕獲功能,即在模式中新增(),見例子。另外string.match(s, 「()匹配字元()」)相當於string.find(s,匹配字元)

string.gsub(s, s1, s2) 引數為目標字串,模式,替換字串。作用是將目標字串中所有出現模式的地方替換為目標字串。可選的第四個引數,限制替換的次數。返回兩個值,第乙個是修改過的字串,第二個是統計替換的次數。其中第三個引數也可以是乙個函式或者乙個table,函式的話gsub會在每次找到匹配時呼叫,並替換它的返回值,將捕獲到的內容作為引數傳遞給這個函式;如果是table的話,會將捕獲的內容作為key,查詢table中的value

string.gmatch() 返回乙個函式,通過這個函式可以遍歷到乙個字串中所有出現指定模式的地方,一般用在for迴圈中。兩個引數,第乙個是目標字串,第二個是匹配模式。

模式:

大寫表示它們的補集;

[ ]中括號可表示乙個字符集,裡面填寫所有符合的內容,-表示範圍,比如八進位制數[0-7] ,加上^表示該字符集的補集,如[^0-7]

%%表示%本身,%,.表示.

+*總是匹配最多次,-匹配最少次數(經常是0次)

如果模式以^開頭,則它只會匹配目標字串的開頭部分

如果模式以$結尾,那麼它只會匹配目標字串的結尾部分

%b 匹配成對的字元,入%b()匹配一對圓括號和裡面的任何內容

%0 表示整個匹配,%1表示匹配第乙個捕獲的部分,以此類推

例1:

string.format(「pi = %.4f」, math.pi)) –> pi = 3.1416

string.format(「%02d/%02d/%04d」, 5, 11, 1990)) –> 05/11/1990

string.format(「<%s>%s

Lua 函式 函式

在lua中,函式是一種對語句和表示式進行抽象的主要機制。函式既可以完成某項特定的任務,也可以只做一些計算並返回結果。lua具有一項非常於總不同的特徵,允許函式返回多個結果 s,e string.find hello lua users lua print s,e 7 9 以lua編寫的函式同樣可以返...

Lua基礎學習 Lua函式

函式主要用途 1 是作為呼叫語句使用。2 作為賦值語句的表示式使用。語法 區域性 全域性 function fun name 引數列表 函式體endfunction 定義函式關鍵字注意 1 在使用 lua 函式 變數時一定要先定義函式 變數 2 lua 函式不支援引數預設值,可以使用 or 解決。如...

lua學習 lua函式理解

詞法定界指 巢狀的函式可以訪問他外部函式中的變數。第一類值指 可以被存放在變數中,也可以存放在表中,可以作為函式的引數,還可以作為函式的返回值。的值function foo x return 2 x end這段 實際上就等效於 foo function x return 2 x end所以實際上lu...