1. 程式人生 > >Lua_常用的函式庫

Lua_常用的函式庫

基本函式庫為Lua內建的函式庫,不需要額外裝載

assert (v [, message])
功能:相當於C的斷言,
引數:
v:當表示式v為nil或false將觸發錯誤,
message:發生錯誤時返回的資訊,預設為"assertion failed!"


--------------------------------------------------------------------------------

collectgarbage (opt [, arg])
功能:是垃圾收集器的通用介面,用於操作垃圾收集器
引數:
opt:操作方法標誌
"Stop": 停止垃圾收集器 
"Restart": 重啟垃圾收集器 
"Collect": 執行一次全垃圾收集迴圈
"Count": 返回當前Lua中使用的記憶體量(以KB為單位)
"Step": 單步執行一個垃圾收集. 步長 "Size" 由引數arg指定 (大型的值需要多步才能完成),如果要準確指定步長,需要多次實驗以達最優效果。如果步長完成一次收集迴圈,將返回True
"Setpause": 設定 arg/100 的值作為暫定收集的時長 
"Setstepmul": 設定 arg/100 的值,作為步長的增幅(即新步長=舊步長*arg/100)


--------------------------------------------------------------------------------

dofile (filename)


功能:開啟並且執行一個lua塊,當忽略引數filename時,將執行標準輸入裝置(stdin)的內容。返回所有塊的返回值。當發生錯誤時,dofile將錯誤反射給呼叫者
注:dofile不能在保護模式下執行


--------------------------------------------------------------------------------

error (message [, level])
功能:終止正在執行的函式,並返回message的內容作為錯誤資訊(error函式永遠都不會返回)
通常情況下,error會附加一些錯誤位置的資訊到message頭部.
Level引數指示獲得錯誤的位置,
Level=1[預設]:為呼叫error位置(檔案+行號)
Level=2:指出哪個呼叫error的函式的函式
Level=0:不新增錯誤位置資訊


--------------------------------------------------------------------------------

_G全域性環境表(全域性變數)

功能:記錄全域性環境的變數值的表 _G._G = _G


--------------------------------------------------------------------------------

getfenv(f)
功能:返回函式f的當前環境表
引數:f可以為函式或呼叫棧的級別,級別1[預設]為當前的函式,級別0或其它值將返回全域性環境_G


--------------------------------------------------------------------------------

getmetatable(object)
功能:返回指定物件的元表(若object的元表.__metatable項有值,則返回object的元表.__metatable的值),當object沒有元表時將返回nil


--------------------------------------------------------------------------------

ipairs (t)

功能:返回三個值 迭代函式、表、0
多用於窮舉表的鍵名和鍵值對
如:for i,v in ipairs(t) do 

end
每次迴圈將索引賦級i,鍵值賦給v
注:本函式只能用於以數字索引訪問的表 如:t={"1","cash"}


--------------------------------------------------------------------------------

load (func [, chunkname])
功能:裝載一個塊中的函式,每次呼叫func將返回一個連線前一結的字串,在塊結尾處將返回nil
當沒有發生錯誤時,將返回一個編譯完成的塊作為函式,否則返回nil加上錯誤資訊,此函式的環境為全域性環境
chunkname用於錯誤和除錯資訊


--------------------------------------------------------------------------------

loadfile ([filename])
功能:與load類似,但裝載的是檔案或當沒有指定filename時裝載標準輸入(stdin)的內容


--------------------------------------------------------------------------------

loadstring (string [, chunkname])
功能:與load類似,但裝載的內容是一個字串
如:assert(loadstring(s))()


--------------------------------------------------------------------------------

next (table [, index])
功能:允許程式遍歷表中的每一個欄位,返回下一索引和該索引的值。
引數:table:要遍歷的表
   index:要返回的索引的前一索中的號,當index為nil[]時,將返回第一個索引的值,當索引號為最後一個索引或表為空時將返回nil
注:可以用next(t)來檢測表是否為空(此函式只能用於以數字索引的表與ipairs相類似)


--------------------------------------------------------------------------------

ipairs (t)
功能:返回三個值 next函式、表、0
多用於窮舉表的鍵名和鍵值對
如:for n,v in pairs(t) do 

end
每次迴圈將索引賦級i,鍵值賦給v
注:本函式只能用於以鍵名索引訪問的表 如:t={id="1",name="cash"}


--------------------------------------------------------------------------------

pcall (f, arg1, ···)
功能:在保護模式下呼叫函式(即發生的錯誤將不會反射給呼叫者)
當呼叫函式成功能返回true,失敗時將返回false加錯誤資訊


--------------------------------------------------------------------------------

print (···)
功能:簡單的以tostring方式格式化輸出引數的內容


--------------------------------------------------------------------------------

rawequal (v1, v2)
功能:檢測v1是否等於v2,此函式不會呼叫任何元表的方法


--------------------------------------------------------------------------------

rawget (table, index)
功能:獲取表中指定索引的值,此函式不會呼叫任何元表的方法,成功返回相應的值,當索引不存在時返回nil
注:本函式只能用於以數字索引訪問的表 如:t={"1","cash"}


--------------------------------------------------------------------------------

rawset (table, index, value)    
功能:設定表中指定索引的值,此函式不會呼叫任何元表的方法,此函式將返回table
PS:table.insert功能類似

--------------------------------------------------------------------------------

select (index, ···)
功能:當index為數字將返回所有index大於index的引數:如:select(2,"a","b") 返回 "b"
當index為"#",則返回引數的總個數(不包括index)


--------------------------------------------------------------------------------

setfenv (f, table)
功能:設定函式f的環境表為table
引數:f可以為函式或呼叫棧的級別,級別1[預設]為當前的函式,級別0將設定當前執行緒的環境表


--------------------------------------------------------------------------------

setmetatable (table, metatable)
功能:為指定的table設定元表metatable,如果metatable為nil則取消table的元表,當metatable有__metatable欄位時,將觸發錯誤
注:只能為LUA_TTABLE 表型別指定元表


--------------------------------------------------------------------------------

tonumber (e [, base])
功能:嘗試將引數e轉換為數字,當不能轉換時返回nil
base(2~36)指出引數e當前使用的進位制,預設為10進位制,如tonumber(11,2)=3


--------------------------------------------------------------------------------

tostirng(e)
功能:將引數e轉換為字串,此函式將會觸發元表的__tostring事件


--------------------------------------------------------------------------------

type(v)
功能:返回引數的型別名("nil","number", "string", "boolean", "table", "function", "thread", "userdata")


--------------------------------------------------------------------------------

unpack (list [, i [, j]])
功能:返回指定表的索引的值,i為起始索引,j為結束索引
注:本函式只能用於以數字索引訪問的表,否則只會返回nil 如:t={"1","cash"}


--------------------------------------------------------------------------------

_VERSION
功能:返回當前Lua的版本號"Lua 5.1". 


--------------------------------------------------------------------------------

xpcall (f, err)
功能:與pcall類似,在保護模式下呼叫函式(即發生的錯誤將不會反射給呼叫者)
但可指定一個新的錯誤處理函式控制代碼
當呼叫函式成功能返回true,失敗時將返回false加err返回的結果

 

轉載於:Lua中的基本函式庫 - 憂鬱的加菲貓 - 部落格園

地址:https://www.cnblogs.com/whiteyun/archive/2009/08/12/1543184.html