鍍金池/ 教程/ Java/ 標(biāo)準(zhǔn)庫
數(shù)據(jù)庫訪問
循環(huán)
數(shù)組
錯(cuò)誤處理
面向?qū)ο?/span>
調(diào)試
游戲開發(fā)
文件 I/O
變量
迭代器
Web 編程
模塊
函數(shù)
元表
協(xié)程
垃圾回收機(jī)制
標(biāo)準(zhǔn)庫
決策
數(shù)據(jù)類型
運(yùn)行環(huán)境
操作符
字符串
基本語法
概述

標(biāo)準(zhǔn)庫

Lua 標(biāo)準(zhǔn)庫利用 C 語言 API 實(shí)現(xiàn)并提供了豐富的函數(shù),它們內(nèi)置于 Lua 語言中。該標(biāo)準(zhǔn)庫不僅可以提供 Lua 語言內(nèi)服務(wù),還能提供外部服務(wù),比如文件或數(shù)據(jù)庫的操作。

這些標(biāo)準(zhǔn)庫使用標(biāo)準(zhǔn)的 C API 接口實(shí)現(xiàn),它們作為獨(dú)立的 C 語言模塊提供給使用者。主要包括以下的內(nèi)容:

  • 基本庫,包括協(xié)程子庫
  • 模塊庫
  • 字符串操作
  • 表操作
  • 數(shù)學(xué)計(jì)算庫
  • 文件輸入與輸出
  • 操作系統(tǒng)工具庫
  • 調(diào)試工具庫

基本庫

在本教程中,我們已經(jīng)在很多地方都使用了基本庫的內(nèi)容。下面的表中列出了相關(guān)的函數(shù)與鏈接。

S.N. 庫或者方法
1 錯(cuò)誤處理庫,包括錯(cuò)誤處理函數(shù),比如 assert,error等,詳見錯(cuò)誤處理。
2 內(nèi)存管理,包括與垃圾回收相關(guān)的自動(dòng)內(nèi)存管理的內(nèi)容,詳見垃圾回收。
3 dofile([filename]),打開指定文件,并將文件內(nèi)容作為代碼執(zhí)行。如果沒有傳入?yún)?shù),則函數(shù)執(zhí)行標(biāo)準(zhǔn)輸入的內(nèi)容。錯(cuò)誤會(huì)傳遞至函數(shù)調(diào)用者。
4 _G,全局變量,它存儲(chǔ)全局的環(huán)境。Lua 本身不使用此變量。
5 getfenv([f]),返回指定函數(shù)使用的當(dāng)前環(huán)境(作用域),可以通過函數(shù)名或棧深度值指定函數(shù)。 1 表示調(diào)用 getfenv 的函數(shù)。如果傳入的參數(shù)不是函數(shù)或者 f 為 0,則返回全局環(huán)境。f 的默認(rèn)值為 1。
6 getmetatable(object):如果對(duì)象沒有元表,則返回 nil。如果對(duì)象的元表有 __metable 域,則返回該值;否則返回對(duì)象的元表。
7 ipairs(t),用于遍歷表,此函數(shù)返回三個(gè)值:next 函數(shù),表 t, 以及 0。
8 load(func[,chunkname]),使用函數(shù) func 加載一個(gè)塊(代碼塊),每次調(diào)用func必須返回與先前的結(jié)果連接后的字符串
9 loadfile([filename]),與 load 函數(shù)相似,此函數(shù)從文件中或標(biāo)準(zhǔn)輸入(沒指定文件名時(shí))讀入代碼塊。
10 loadstring(string,[,chunkname]),與 load 類似,從指定字符串中獲得代碼塊。
11 next(table[,index]),此函數(shù)用于遍歷表結(jié)構(gòu)。第一參數(shù)為表,第二個(gè)參數(shù)是一個(gè)索引值。返回值為指定索引的下一個(gè)索引與相關(guān)的值。
12 pairs(t),用于遍歷表,此函數(shù)返回三個(gè)值:next 函數(shù),表 t, 以及 nil。
13 print(...),打印輸出傳入?yún)?shù)。
14 rawequal(v1,v2),判斷 v1 與 v2 是否相等,不會(huì)調(diào)用任何元方法。返回布爾值。
15 rawget(table,index),返回 table[index],不會(huì)調(diào)用元方法。table 必須是表,索引可以是任何值。
16 rawset(table,index,value),等價(jià)于 table[index] = value,但是不會(huì)調(diào)用元方法。函數(shù)返回表。
17 select(index,...),如果 index 為數(shù)字n,那么 select 返回它的第 n 個(gè)可變實(shí)參,否則只能為字符串 "#",這樣select會(huì)返回變長參數(shù)的總數(shù)。
18 setfenv(f,table),設(shè)置指定函數(shù)的作用域??梢酝ㄟ^函數(shù)名或棧深度值指定函數(shù)。 1 表示調(diào)用 setfenv 的函數(shù)。返回值為指定函數(shù)。特別地,如果 f 為 0,則改變當(dāng)前線程的運(yùn)行環(huán)境,這時(shí)候函數(shù)無返回值。
19 setmetatable(table,metatable),設(shè)置指定表的元表(不能從 Lua 中改變其它類型的元表,其它類型的元表只能從 C 語言中修改)。如果 metatable 為 nil,則刪除表的元表;如果原來的元表有 __metatable 域,則出錯(cuò)。函數(shù)返回 table。
20 tonumber(e[,base]),將參數(shù)轉(zhuǎn)換為數(shù)值。如果參數(shù)本身已經(jīng)是數(shù)值或者是可以轉(zhuǎn)換為數(shù)值的字符串,則 tonumber 返回?cái)?shù)值,否則返回 nil。
21 tostring(e),將傳遞的實(shí)參以合理的格式轉(zhuǎn)換為字符串。精確控制字符串的轉(zhuǎn)換可以使用 string.format 函數(shù)。
22 type(v),以字符串的形式返回輸入?yún)?shù)的類型。該函數(shù)的返回值可以取字符串:nil,number,string,boolean,table,function,thread,userdata。
23 unpack(list[,i[,j]]),從指定的表中返回元素。
24 _VERSION,存儲(chǔ)當(dāng)前解釋器版本信息的全局變量。該變量當(dāng)前存儲(chǔ)的內(nèi)容為:Lua 5.1。(譯注:與解釋器版本有關(guān))
25 協(xié)程庫,包括協(xié)程相關(guān)的函數(shù),詳見協(xié)程

模塊庫

模塊庫提供了加載模塊的基本函數(shù)。它在全局作用域內(nèi)提供了 require 函數(shù)。其它的函數(shù)都是通過包管理的模塊庫提供的。詳細(xì)內(nèi)容請(qǐng)參見模塊

字符串操作庫

詳細(xì)內(nèi)容請(qǐng)參見字符串。

表操作庫

詳細(xì)內(nèi)容請(qǐng)參見

數(shù)學(xué)函數(shù)庫

詳細(xì)內(nèi)容請(qǐng)參見數(shù)學(xué)函數(shù)庫。

文件 IO 庫

詳細(xì)內(nèi)容請(qǐng)參見文件 IO。

操作系統(tǒng)工具庫

詳細(xì)內(nèi)容請(qǐng)參見操作系統(tǒng)工具庫。

調(diào)試工具庫

詳細(xì)內(nèi)容請(qǐng)參見調(diào)試

上一篇:概述下一篇:變量