Lua中關(guān)于函數(shù)庫(kù)基本操作學(xué)習(xí)筆記
Lua中關(guān)于函數(shù)庫(kù)基本操作學(xué)習(xí)筆記是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)函數(shù)庫(kù)在lua中的應(yīng)用,具體內(nèi)容來看本文詳解?;?strong>函數(shù)庫(kù)為Lua內(nèi)置的函數(shù)庫(kù),不需要額外裝載。
assert (v [, message])
功能:相當(dāng)于C的斷言,
參數(shù):
v:當(dāng)表達(dá)式v為nil或false將觸發(fā)錯(cuò)誤,
message:發(fā)生錯(cuò)誤時(shí)返回的信息,默認(rèn)為"assertion failed!"
collectgarbage (opt [, arg])
功能:是垃圾收集器的通用接口,用于操作垃圾收集器
參數(shù):
opt:操作方法標(biāo)志
"Stop": 停止垃圾收集器
"Restart": 重啟垃圾收集器
"Collect": 執(zhí)行一次全垃圾收集循環(huán)
"Count": 返回當(dāng)前Lua中使用的內(nèi)存量(以KB為單位)
"Step": 單步執(zhí)行一個(gè)垃圾收集. 步長(zhǎng) "Size" 由參數(shù)arg指定 (大型的值需要多步才能完成),如果要準(zhǔn)確指定步長(zhǎng),需要多次實(shí)驗(yàn)以達(dá)***效果。如果步長(zhǎng)完成一次收集循環(huán),將返回True
"Setpause": 設(shè)置 arg/100 的值作為暫定收集的時(shí)長(zhǎng)
"Setstepmul": 設(shè)置 arg/100 的值,作為步長(zhǎng)的增幅(即新步長(zhǎng)=舊步長(zhǎng)*arg/100)
dofile (filename)
功能:打開并且執(zhí)行一個(gè)lua塊,當(dāng)忽略參數(shù)filename時(shí),將執(zhí)行標(biāo)準(zhǔn)輸入設(shè)備(stdin)的內(nèi)容。返回所有塊的返回值。當(dāng)發(fā)生錯(cuò)誤時(shí),dofile將錯(cuò)誤反射給調(diào)用者
注:dofile不能在保護(hù)模式下運(yùn)行
error (message [, level])
功能:終止正在執(zhí)行的函數(shù),并返回message的內(nèi)容作為錯(cuò)誤信息(error函數(shù)永遠(yuǎn)都不會(huì)返回)
通常情況下,error會(huì)附加一些錯(cuò)誤位置的信息到message頭部.
Level參數(shù)指示獲得錯(cuò)誤的位置,
Level=1[默認(rèn)]:為調(diào)用error位置(文件+行號(hào))
Level=2:指出哪個(gè)調(diào)用error的函數(shù)的函數(shù)
Level=0:不添加錯(cuò)誤位置信息
_G全局環(huán)境表(全局變量)
功能:記錄全局環(huán)境的變量值的表 _G._G = _G
getfenv(f)
功能:返回函數(shù)f的當(dāng)前環(huán)境表
參數(shù):f可以為函數(shù)或調(diào)用棧的級(jí)別,級(jí)別1[默認(rèn)]為當(dāng)前的函數(shù),級(jí)別0或其它值將返回全局環(huán)境_G
getmetatable(object)
功能:返回指定對(duì)象的元表(若object的元表.__metatable項(xiàng)有值,則返回object的元表.__metatable的值),當(dāng)object沒有元表時(shí)將返回nil
ipairs (t)
功能:返回三個(gè)值 迭代函數(shù)、表、0
多用于窮舉表的鍵名和鍵值對(duì)
- 如:for i,v in ipairs(t) do
- end
每次循環(huán)將索引賦級(jí)i,鍵值賦給v
注:本函數(shù)只能用于以數(shù)字索引訪問的表 如:t={"1","cash"}
load (func [, chunkname])
功能:裝載一個(gè)塊中的函數(shù),每次調(diào)用func將返回一個(gè)連接前一結(jié)的字串,在塊結(jié)尾處將返回nil
當(dāng)沒有發(fā)生錯(cuò)誤時(shí),將返回一個(gè)編譯完成的塊作為函數(shù),否則返回nil加上錯(cuò)誤信息,此函數(shù)的環(huán)境為全局環(huán)境
chunkname用于錯(cuò)誤和調(diào)試信息
loadfile ([filename])
功能:與load類似,但裝載的是文件或當(dāng)沒有指定filename時(shí)裝載標(biāo)準(zhǔn)輸入(stdin)的內(nèi)容
loadstring (string [, chunkname])
功能:與load類似,但裝載的內(nèi)容是一個(gè)字串
如:assert(loadstring(s))()
next (table [, index])
功能:允許程序遍歷表中的每一個(gè)字段,返回下一索引和該索引的值。
參數(shù):table:要遍歷的表
index:要返回的索引的前一索中的號(hào),當(dāng)index為nil[]時(shí),將返回***個(gè)索引的值,當(dāng)索引號(hào)為***一個(gè)索引或表為空時(shí)將返回nil
注:可以用next(t)來檢測(cè)表是否為空(此函數(shù)只能用于以數(shù)字索引的表與ipairs相類似)
ipairs (t)
功能:返回三個(gè)值 next函數(shù)、表、0
多用于窮舉表的鍵名和鍵值對(duì)
- 如:for n,v in pairs(t) do
- end
每次循環(huán)將索引賦級(jí)i,鍵值賦給v
注:本函數(shù)只能用于以鍵名索引訪問的表 如:t={id="1",name="cash"}
pcall (f, arg1, ···)
功能:在保護(hù)模式下調(diào)用函數(shù)(即發(fā)生的錯(cuò)誤將不會(huì)反射給調(diào)用者)
當(dāng)調(diào)用函數(shù)成功能返回true,失敗時(shí)將返回false加錯(cuò)誤信息
print (···)
功能:簡(jiǎn)單的以tostring方式格式化輸出參數(shù)的內(nèi)容
rawequal (v1, v2)
功能:檢測(cè)v1是否等于v2,此函數(shù)不會(huì)調(diào)用任何元表的方法
rawget (table, index)
功能:獲取表中指定索引的值,此函數(shù)不會(huì)調(diào)用任何元表的方法,成功返回相應(yīng)的值,當(dāng)索引不存在時(shí)返回nil
注:本函數(shù)只能用于以數(shù)字索引訪問的表 如:t={"1","cash"}
rawset (table, index, value)
功能:設(shè)置表中指定索引的值,此函數(shù)不會(huì)調(diào)用任何元表的方法,此函數(shù)將返回table
select (index, ···)
功能:當(dāng)index為數(shù)字將返回所有index大于index的參數(shù):如:select(2,"a","b") 返回 "b"
當(dāng)index為"#",則返回參數(shù)的總個(gè)數(shù)(不包括index)
setfenv (f, table)
功能:設(shè)置函數(shù)f的環(huán)境表為table
參數(shù):f可以為函數(shù)或調(diào)用棧的級(jí)別,級(jí)別1[默認(rèn)]為當(dāng)前的函數(shù),級(jí)別0將設(shè)置當(dāng)前線程的環(huán)境表
setmetatable (table, metatable)
功能:為指定的table設(shè)置元表metatable,如果metatable為nil則取消table的元表,當(dāng)metatable有__metatable字段時(shí),將觸發(fā)錯(cuò)誤
注:只能為L(zhǎng)UA_TTABLE 表類型指定元表
tonumber (e [, base])
功能:嘗試將參數(shù)e轉(zhuǎn)換為數(shù)字,當(dāng)不能轉(zhuǎn)換時(shí)返回nil
base(2~36)指出參數(shù)e當(dāng)前使用的進(jìn)制,默認(rèn)為10進(jìn)制,如tonumber(11,2)=3
tostirng(e)
功能:將參數(shù)e轉(zhuǎn)換為字符串,此函數(shù)將會(huì)觸發(fā)元表的__tostring事件
type(v)
功能:返回參數(shù)的類型名("nil","number", "string", "boolean", "table", "function", "thread", "userdata")
unpack (list [, i [, j]])
功能:返回指定表的索引的值,i為起始索引,j為結(jié)束索引
注:本函數(shù)只能用于以數(shù)字索引訪問的表,否則只會(huì)返回nil 如:t={"1","cash"}
_VERSION
功能:返回當(dāng)前Lua的版本號(hào)"Lua 5.1".
xpcall (f, err)
功能:與pcall類似,在保護(hù)模式下調(diào)用函數(shù)(即發(fā)生的錯(cuò)誤將不會(huì)反射給調(diào)用者)
但可指定一個(gè)新的錯(cuò)誤處理函數(shù)句柄
當(dāng)調(diào)用函數(shù)成功能返回true,失敗時(shí)將返回false加err返回的結(jié)果。
小結(jié):Lua中關(guān)于函數(shù)庫(kù)基本操作學(xué)習(xí)筆記的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!