Lua 函式庫 總彙
阿新 • • 發佈:2018-11-27
Lua 5.3 參考手冊 (中文版)http://cloudwu.github.io/lua53doc/contents.html
字串庫 (均以"string."開頭) | |
---|---|
byte(s[,i[,j]]) | 返回字串的內部數字編碼,i、j為字串的索引,i和j限定了多少字元就返回多少值 |
char(…) | 吧數字編碼轉換為字串 |
dump(function[,strip]) | 序列化函式,返回一個字串,使用load可以反序列化該函式 |
find(s,pattern[,init[,plain]]) | 用來查詢匹配的pattern,返回該pattern的索引,找到一個匹配就返回,如果找不到,返回nil |
format(formatstring[,value[,…]]) | 格式化字串 |
match(s,pattern[,init]) | 與find相同,不同在於這個返回第一個匹配的內容 |
gmatch(s,pattern) | 返回一個迭代器函式,每次呼叫這個迭代器函式都會返回一個匹配該字串的值 |
gsub(s,pattern,repl[,n]) | 將每個匹配pattern的字串替換為repl,返回替換完畢的字串和替換次數,如果repl為函式,則用匹配到的引數作為引數呼叫這個函式,如果是表,則用匹配到的引數作為鍵去查詢這個表 |
len(s) | 返回字串的長度 |
lower(s) | 將字串轉換為小寫 |
upper(s) | 將字串轉換為大寫 |
rep(s,n[,sep]) | 將某個字串自我複製連結起來,n是次數,sep為連線符 |
reverse(s) | 反正字串 |
sub(s,i[,j]) | 擷取字串,i為起始,j為結束 |
數學庫(均以“math.”開頭) | |
---|---|
abs (x) | 取絕對值 |
acos(x) | 反餘弦函式 |
asin(x) | 反正弦函式 |
atan2(x,y) | x/y的反正切值 |
atan(x) | 反正切函式 |
ceil(x) | 不小於x的最大整數 如:x =5.8 返回 6 x=-3.5 返回3 |
cosh(x) | 雙曲線餘弦函式 |
cos(x) | 餘弦函式 |
deg(x) | 弧度轉角度 |
exp(x) | 計算以e為底x次方值 |
floor(x) | 不大於x的最大整數 |
fmod(x,y) | 取模運算 |
frexp(x) | 把雙精度數val分解為數字部分(尾數)和以2為底的指數n |
ldexp(x,y) | 計算value*2的n次方 |
log10(x) | 計算以10為基數的對數 |
log(x) | 計算一個數字的自然對數 |
max(…) | 取引數中的最大值 |
min(…) | 去引數中的最小值 |
modf(x) | 把數分為整數和小數 |
pow(x,y) | 得到x的y次方 |
rad(x) | 角度轉弧度 |
random(x[,y]) | 獲取隨機數 |
randomseed(x) | 設定隨機數的種子 |
sinh(x) | 雙曲線正弦函式 |
sinh(x) | 正弦函式 |
sqrt(x) | 開平方函式 |
tanh(x) | 雙曲線正切函式 |
tan(x) | 正切函式 |
Table 函式庫(均以"table."開頭) | |
---|---|
concat(table[,sep[,i[,j]]]) | 將table使用sep作為連線進行連線,i和j是限定座標 |
insert(table,[pos,]value) | 在的table的pos處插入value,不指定pos會在新增在表的末尾 |
move(table1,f,e,t[,table2]) | 將元素從table1移動到table2 |
pack(…) | 獲取一個索引從1開始的引數表table,並會對這個table預定義一個欄位n,表示該表的長度 |
remove(table[,pos]) | 移除table中pos上的元素,並返回這個被移除的值 |
sort(table[,comp]) | 對陣列進行排序,沒有提供排序函式,預設為<操作 |
unpack(table[,i[,j]]) | 返回table裡的元素 |
getn(table) | 獲取table中的元素個數 |
maxn(table) | 返回指定table中所有正數key值中最大的key值,如果不存在key值為正數的元素則返回0 |
Lua庫函式 | |
---|---|
assert(v[,message]) | 相當於C的斷言功能,當v為nil或者false將處罰錯誤,message為發生錯誤時返回的資訊 |
collectgarbage(opt[,arg]) | 用於操作垃圾收集器。opt:操作方法標誌(“collect”:做一次完整的垃圾收集迴圈;“count”:返回當前Lua中使用的記憶體量(KB);“stop”:停止垃圾收集器;“restart”:重啟垃圾收集器;“step”:單步執行一個垃圾收集器,步長“size”由引數arg指定;“setpause”:設定arg/100的值作為暫定收集時長;“setstepmul”:設定arg/100的值,作為步長的增幅) |
dofile(filename) | 開啟並且執行一個lua塊 |
error(message[,level]) | 終止正在執行的函式,並返回message的內容作為錯誤資訊(error函式永遠都不會返回),level引數:level=1(預設):為呼叫error文職(檔案+行號) level=2:指出那個呼叫error函式的函式 level=0:不新增錯誤位置資訊 |
_G | 全域性環境的變數值表 |
getfenv(f) | 返回函式f的當前環境表 |
getmetatable(object) | 返回指定物件的元表(如果object的元表__metatable有值,返回__metatable,否則返回nil) |
load(func[,chunkname]) | 用於載入一個數據塊。從字串或者函式中載入一個程式碼為方法並返回 |
loadfile([filename]) | 與load類似,但載入的是一個檔案,如果沒有指定檔名載入標準輸入(stdin)的內容 |
loadstring(string[,chunkname]) | 與load型別,但載入的一個字串 |
next(table[,index]) | 允許程式遍歷表中的每一個欄位,返回下一索引和該索引的值;table:要遍歷的表,index:要返回的索引的前一索引號,當index為nil[]時,返回第一個索引的值,當索引號為最後一個索引或表為null是將返回nil,可以用來判定table是否為nil |
ipairs(t) | 泛型for迭代器,類似於foreach |
pcall(f,arg1,…) | 在保護模式呼叫函式(即發生的錯誤將不會反射給呼叫者),當呼叫函式成功能返回true,失敗時將返回false加錯誤資訊 |
print(…) | 以tostring方式格式化輸出引數的內容 |
rawequal(v1,v2) | 檢測v1是否等於v2,此函式不會呼叫任何元表的方法 |
rawget(table,index) | 獲取表中指定索引的值,此函式不會呼叫任何元表的發放,成功返回相應的值,當索引不存在時返回nil 注:只能用於以數字索引訪問的表 |
rawset(table,index,value) | 設定表中指定索引的值,此函式不會呼叫任何元表的方法 |
select(index,…) | 當index為數字將返回所有index大於index的引數,當index為“#”,返回引數的總個數 |
setfenv(f,table) | 設定函式f的環境表為table,f可以為函式或呼叫棧的級別,級別1 為當前的函式,0將設定當前執行緒的環境表 |
setmetatable(table,metatable) | 設定指定table的元表metatable,如果當table有__metatable欄位時,會觸發錯誤 |
tonumber(e[,base]) | 將e轉換為數字,不能轉換返回nil,base(0~36)指出引數e當前使用的進位制 |
tostring(e) | 將引數e轉換為字串,會觸發元表__tostring事件 |
type(v) | 返回引數的型別 |
unpack(list[,i[,j]]) | 返回指定表的索引的值,i為起始索引,j為結束索引 |
_VERSION | 返回當前lua的版本號 |
xpcall(f,err) | 與pcall類似,在保護模式下呼叫函式,可以指定一個新的錯誤處理函式控制代碼 |
元表方法 | |
---|---|
__add | 運算子+ |
__sub | 運算子- |
__mul | 運算子* |
__div | 運算子/ |
__mod | 運算子% |
__unm | 運算子-(取反) |
__concat | 運算子… |
__eq | 運算子== |
__lt | 運算子< |
__le | 運算子<= |
__call | 可以讓table當做一個函式來使用 |
__tostring | 轉換為字串 |
__index | 呼叫一個索引,可以是表和方法,當呼叫table的一個不存在引用時,如果__index是一個table,會查詢__index元方法表,若有該索引,則返回該索引的值,否則返回nil,如果__index是一個方法,會將table和索引作為引數傳遞給方法,return一個返回值 |
__newindex | 給一個索引賦值,當給table中一個不存在的索引賦值時,會呼叫__newindex方法 |
注:rawget和rawset可以直接修改表,不會呼叫元表的元方法 |