lua5.2中的base庫_第1頁
lua5.2中的base庫_第2頁
lua5.2中的base庫_第3頁
lua5.2中的base庫_第4頁
lua5.2中的base庫_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Lua5.2中的base庫(轉(zhuǎn))Lua中base庫里面的接口都是全局可見的,我在全局環(huán)境一篇里面已經(jīng)談到了。在lua5.2中base庫增加了2個(gè)全局變量和23個(gè)函數(shù),這些都可以在lbaselib.c里面找到。首先增加了兩個(gè)變量:_G=當(dāng)前l(fā)ua中的全局環(huán)境_VERSION=LUA_VERSION其中LUA_VERSION是一個(gè)宏,在每個(gè)版本的Lua中都不一樣,定義在lua.h中可以看到如果我用print(_VERSION)打印出來,那么顯示的應(yīng)該是Lua5.2。下面按照字典序來解釋這23個(gè)函數(shù),點(diǎn)擊下面的函數(shù)名跳轉(zhuǎn)到對應(yīng)的位置:assertcollectgarbagedofileerrorge

2、tmetatableipairsloadloadfileloadstringnextpairspcallprintrawequalrawlenrawgetrawsetselectsetmetatabletonumbertostringtypexpcallassert(v,message)功能:拋出一個(gè)錯(cuò)誤,當(dāng)參數(shù)v的值為nil或者false時(shí),否則就返回assert的所有參數(shù)。用法:1、locala=assert(false,"thisisaerror")-引發(fā)一個(gè)錯(cuò)誤,執(zhí)行后會報(bào)一個(gè)錯(cuò)誤,并打印出thisisaerror,如下:2、locala,b=assert(true

3、,"thisisaerror")print(a,b)-不引發(fā)錯(cuò)誤,返回assert的所有參數(shù),如下:collectgarbage(opt,arg)功能:根據(jù)opt選項(xiàng)來操作垃圾收集器。用法:opt有11個(gè)選項(xiàng):stop:停止自動(dòng)執(zhí)行的垃圾收集器,直到下次顯示調(diào)用restart選項(xiàng)restart:重新啟動(dòng)自動(dòng)執(zhí)行的垃圾收集器collect:執(zhí)行一次完整的垃圾收集循環(huán)count:返回lua使用的總內(nèi)存大小,第一個(gè)返回值為內(nèi)存大小(KB),第二個(gè)值為這個(gè)大小(BYTE)對1024取模的值step:執(zhí)行指定步數(shù)的垃圾收集,步數(shù)由arg參數(shù)指定setpause:設(shè)置arg為當(dāng)前垃圾收

4、集器pause數(shù),并返回設(shè)置前的值setstepmul:設(shè)置arg為當(dāng)前垃圾收集器stepmultiplier的值,并返回設(shè)置前的值setmajorinc:設(shè)置arg為當(dāng)前垃圾收集器setmajorinc的值,并返回設(shè)置前的值isrunning:返回垃圾收集器當(dāng)前的狀態(tài),start狀態(tài)為true,stop狀態(tài)為falsegenerational:把垃圾收集器轉(zhuǎn)換為generational模式incremental:把垃圾收集器轉(zhuǎn)換為incremental模式dofile(fllename)功能:打開filename文件,并將其內(nèi)容當(dāng)做一個(gè)lua塊來執(zhí)行,如果filename缺省,則執(zhí)行當(dāng)前標(biāo)準(zhǔn)

5、輸入。用法;1 、filename缺省的情況下,如下使用:在lua交互窗口中輸入dofile(),則進(jìn)入stdin交互,然后輸入你想要執(zhí)行的代碼,最后使用文件結(jié)束符退出stdin交互,這樣就可以看到dofile執(zhí)行的結(jié)果了:2 、指定filename:error(message,level)功能:中止程序并返回message,如果level為0,這只是打印message,level為1,打印error所在的地方以及message,如果level為2,打印調(diào)用error所在函數(shù)的地方以及message。用法;getmetatable(object)功能:獲取object對象的元表,如果objec

6、t沒有元表就返回nil,如果object存在元表,并且元表中有_metatable字段,則返回該字段,否則直接返回元表。用法:ipairs(t)功能:如果t存在_ipairs元方法,則返回該方法的前3個(gè)返回值,否則調(diào)用ipairs迭代器。用法:(妹的,為了解釋這個(gè)我自己寫了ipars迭代器。)load(ld,source,mode,env)功能:加載一個(gè)塊,如果ld是字符串,那么將這個(gè)字符串作為這個(gè)塊,如果ld是一個(gè)函數(shù),那么直接調(diào)用這個(gè)函數(shù),并返回這個(gè)函數(shù)的塊。source為編譯ld發(fā)生錯(cuò)誤的時(shí)候返回的錯(cuò)誤信息,mode是指這個(gè)塊是文本類型還是二進(jìn)制類型。當(dāng)ld為函數(shù)時(shí),會將這個(gè)函數(shù)放入_E

7、NV中去。用法:loadfile(filename,mode,env)功能:和load類似,只不過從文件里讀取塊,當(dāng)filename為空時(shí),從標(biāo)準(zhǔn)輸入讀取塊。用法:類似我就不舉例了。loadstring(string,source,mode,env)功能:和load類似,只不過從字符串中讀取塊。用法:略。next(table,index)功能:獲取table指定索引的下一個(gè)索引和值。index沒有傳則返回初始索引和值。用法:pairs(t)功能:如果t存在_pairs元方法,則返回該方法的前3個(gè)返回值,否則返回next,t和nil。用法:參見ipairs和next。pcall(f,argl,)

8、功能:安全調(diào)用,用對應(yīng)參數(shù)調(diào)用函數(shù)f,pcall的第一個(gè)返回值表示這次調(diào)用是否發(fā)生錯(cuò)誤,如果一切OK則緊接著返回f的所有返回值,如果發(fā)生錯(cuò)誤了,則接著返回錯(cuò)誤信息。用法:print(,)功能:接收任意參數(shù)并調(diào)用tostring函數(shù)轉(zhuǎn)換每一個(gè)參數(shù)為字符串將他們打印到標(biāo)準(zhǔn)輸出。用法:略。這個(gè)你都不明白的話還是別學(xué)了。(注意用法)rawequal(v1,v2)功能:檢查v1是否和v2相等,不調(diào)用任何元方法。用法:略。(注意一般的判斷相等,如果v1和v2定義了相同的元方法_eq的話,會調(diào)用這個(gè)方法來進(jìn)行相等比較)rawlen(v)功能:返回v的長度,v必須為table或者string。不調(diào)用任何元方法

9、。用法:略。rawget(table,index)功能:返回tableindex的值,不調(diào)用任何元方法。用法:略。rawset(table,index,value)功能:設(shè)置tableindex=value,不調(diào)用任何元方法。用法:略。select(index,)功能:返回index索引之后的所有參數(shù),index為負(fù)數(shù)時(shí),最后一個(gè)參數(shù)的索引為-1。用法:setmetatable(table,metatable)功能:設(shè)置table的元表為metatable,返回table。如果metatable為nil,則清掉了table的元表,如果table的元表本身存在_metatable字段,那么再次設(shè)置元表就會報(bào)錯(cuò)。用法:tonumber(e,base)功能:將e轉(zhuǎn)換成base進(jìn)制的數(shù)。base可以是2到36。e為數(shù)字或者能夠轉(zhuǎn)換的字符串,否則返回nil。用法:略。tostring(v)功能:將v轉(zhuǎn)換成字符串,如果v的元方法_tostring存在,則用v作為參數(shù)調(diào)用那個(gè)方法,并把那個(gè)方法的返回值作為返回結(jié)果。用法:略。type(v)功能:返回v的類型,用一個(gè)字符串表示,返回值有:"nil","table","number","string","thread&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論