Lua標準庫
Lua的標準庫提供了一組豐富的功能,與C的API直接實現,建立在Lua編程語言函數。Lua編程語言中這些庫提供服務,還提供外部服務,如文件和數據庫操作。
建於官方的C的API,這些標準庫是作為單獨的C模塊。這包括:
-
基本庫,其中包括協程分庫
-
模塊庫
-
字符串操作
-
表操作
-
數學庫
-
文件輸入和輸出
-
操作係統工具
-
調試設備
基本庫
我們使用的基本庫根據遍及不同主題的教學。下表提供了所有相關的網頁鏈接,並列出了將在本教學Lua的各個組成部分的函數
S.N. | 庫/方法及用途 |
---|---|
1. |
Error Handling 包括錯誤處理功能,如斷言,誤差 - 錯誤處理。 |
2. |
Memory Management I包括與垃圾回收Lua中所解釋的自動內存管理功能 |
3. |
dofile ([filename]) 它打開該文件並執行該文件作為一個塊的內容。如果不帶參數傳遞,那麼這個函數執行標準輸入的內容。這些錯誤將傳播給調用者。 |
4. |
_G 因而是保持全局環境全局變量(即,_G._G=_G)。 LUA本身並不使用這個變量。 |
5. |
getfenv ([f]) 返回當前的環境中使用的功能。 f能夠是一個Lua函數或數字,指定在該協議棧級彆的函數:1級是函數調用getfenv。如果給定的功能是不是一個Lua函數,或者如果f是0,getfenv返回全局環境。默認為f為1。 |
6. |
getmetatable (object) 如果對象冇有元表,返回nil。否則,如果對象的元表具有“__metatable”字段,返回相關值。否則,返回給定對象的元表。 |
7. |
ipairs (t) 此函數讀取表的索引和值。 |
8. |
load (func [, chunkname]) 使用加載函數func獲取其部分組塊。每次調用func必須返回與先前的結果連接字符串。 |
9. |
loadfile ([filename])) 類似於加載,但是從文件的文件名或從標準輸入得到的塊,如果冇有給出文件名。 |
10. |
loadstring (string [, chunkname]) 類似於加載,但是從給定的字符串得到的組塊。 |
11. |
next (table [, index]) 允許程序遍曆表的所有字段。它的第一個參數是一個表,它的第二個參數是該表的索引。接下來返回表及其關聯值的一個索引。 |
12. |
pairs (t) 暫停運行的協程。傳遞給該方法的參數作為附加的返回值以恢複功能。 |
13. |
print (...) 暫停運行的協程。傳遞給該方法的參數作為附加的返回值以恢複功能。 |
14. |
rawequal (v1, v2) 檢查V1是否等於V2,冇有調用任何元方法。返回一個布爾值。 |
15. |
rawget (table, index) 獲取表[索引]的真正值,而不調用任何元方法。表必須是表;索引可以是任何值。 |
16. |
rawset (table, index, value) 設置表[索引]值,真正的值冇有調用任何元方法。表必須是一個表,索引從不同的無任何值,Lua的任何值。這個函數返回表。 |
17. |
select (index, ...) 如果索引是一個數字,返回後的參數數量索引的所有參數。否則,索引必須是字符串“#”,然後選擇返回到額外參數總數。 |
18. |
setfenv (f, table) 設置要使用的特定函數的環境。f 是一個Lua函數或數字,指定在該協議棧級彆的函數:1級是函數調用setfenv。 setfenv返回給定的功能。作為一種特殊情況,當f是0 setfenv改變正在運行的線程的環境。在這種情況下,setfenv不返回任何值。 |
19. |
setmetatable (table, metatable) 設置元表對給定表。 (不能從Lua中改變其它類型的元表,隻能從C)若元表為零,消除了給定表的元表。如果原來的metatable有一個“__metatable”字段,將引發錯誤。這個函數返回表。 |
20. |
tonumber (e [, base]) 嘗試將它的參數轉換為數字。如果參數已經是一個數字或一個字符串轉換為一個數字,然後tonumber返回這個數;否則,返回nil。 |
21. |
tostring (e) 接收到任何類型的參數,並將其轉換為一個字符串,一個合理的格式。有關如何數轉換完全控製,使用String.Format。 |
22. |
type (v) 返回其唯一參數的類型,編碼為一個字符串。這個函數的可能結果是“nil”(字符串,而不是值為零),“數字”,“串”,“布爾”,“表”,“功能”,“線”和“用戶數據”。 |
23. |
unpack (list [, i [, j]]) 返回從給定表中的元素。 |
24. |
_VERSION 全局變量(不是函數)保存包含當前翻譯版本的字符串。這個變量的當前內容是“Lua5.1”。 |
25. |
Coroutines 包括協程操作功能 |
模塊庫
這些模塊庫提供了在Lua基本的功能模塊加載。它直接在全局環境中導出一個函數:require。導出表中一切的包。有關模塊庫的細節在前麵的章節中解釋
字符串操作
Lua中提供了一組豐富的字符串處理函數。Lua - 字符串教學介紹這個細節。
表操作
Lua依賴表中的操作幾乎每一個比特位。較早的Lua- 表教學介紹這個細節。
數學庫
在任何編程語言,數學函數,通常需要做各種科學和工程計算。
文件輸入和輸出
我們經常需要數據存儲設備的編程,這是Lua中提供標準庫函數對文件I/O的。在早期的Lua文件I/O教學有討論。
操作係統工具
有時,可能需要我們訪問操作係統功能。這些函數在Lua解釋 - 操作係統工具教學。
調試設備
Lua中提供了一個調試庫,它提供了所有的基本函數,我們用來創造自己的調試器。