1. 程式人生 > >Lua 函式庫 總彙

Lua 函式庫 總彙

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可以直接修改表,不會呼叫元表的元方法