Lua標準庫


Lua標準庫提供了一組豐富的函式,這些函式直接使用C語言API實現,並使用Lua程式設計語言構建。這些庫提供Lua程式設計語言中的服務以及檔案和資料庫操作之外的服務。

這些在官方C語言API中構建的標準庫作為單獨的C模組提供。它包括以下內容 -

  • 基本庫,包括協程子庫
  • 模組庫
  • 字串操作
  • 表操作
  • 數學庫
  • 檔案輸入和輸出
  • 作業系統設施
  • 偵錯工具

1. 基礎庫

我們在整個教學中使用了各種主題下的基本庫。 下表提供了相關頁面的連結,並列出了本Lua教學各部分所涵蓋的功能。

編號 庫/方法 作用
1 錯誤處理 包括錯誤處理常式,如斷言, 錯誤,如Lua錯誤處理中所述。
2 記憶體管理 包括與垃圾收集相關的自動記憶體管理功能, 如Lua垃圾收集中所述。
3 dofile ([filename]) 它開啟檔案並以塊的形式執行檔案的內容。
4 _G 因此是儲存全域性環境的全域性變數(即_G._G = _G)。
5 getfenv ([f]) 返回函式使用的當前環境。
6 getmetatable (object) 如果object沒有metatable, 則返回nil。 否則,如果objectmetatable具有__metatable欄位,
7 ipairs (t) 此函式獲取表的索引和值。
8 load (func [, chunkname]) 使用函式func載入一個塊來獲取它的碎片。
9 loadfile ([filename])) load類似,但是如果沒有給出檔案名,則從檔案filename或標準輸入中獲取塊。
10 loadstring (string [, chunkname]) load函式類似,但從給定的字串中獲取塊。
11 next (table [, index]) 允許程式遍歷表的所有欄位。
12 pairs (t) 暫停正在執行的協同程式。
13 print (...) 列印給定的引數值。
14 rawequal (v1, v2) 檢查v1是否等於v2,而不呼叫任何無方法。 返回一個布林值。
15 rawget (table, index) 獲取table [index]的值, 而不呼叫任何方法。table必須是表; index可以是任何值。
16 rawset (table, index, value) table [index]的值設定為value,而不呼叫任何方法。
17 select (index, ...) 如果index是數位,則返回引數編號索引後的所有引數。
18 setfenv (f, table) 設定給定函式使用的環境。
19 setmetatable (table, metatable) 設定給定表的元表。
20 tonumber (e [, base]) 嘗試將引數轉換為數位。
21 tostring (e) 接收任何型別的引數並將其轉換為合理格式的字串。
22 type (v) 返回唯一引數的型別,編碼為字串。
23 unpack (list [, i [, j]]) 返回給定表中的元素。
24 _VERSION 包含當前直譯器版本的字串的全域性變數(不是函式)。
25 協同程式 包括Lua協同程式中解釋的協程操作功能。

2. 模組庫

模組庫提供了在Lua中載入模組的基本功能。 它直接在全域性環境中匯出一個函式:require。 其他所有內容都在表包中匯出。 有關模組庫的詳細資訊,請參見前面的Lua模組教學

3. 字串操作

Lua提供了豐富的字串操作功能。 前面的Lua字串教學詳細中介紹了這一點。

4. 表操作

Lua幾乎在其所有操作中都依賴於表。 前面的Lua表教學詳中細介紹了這一點。

5. 檔案輸入和輸出

經常需要程式設計中的資料儲存工具,這是由Lua中的檔案I/O的標準庫函式提供的。 它在前面的Lua 檔案操作教學中討論過。

6. 偵錯工具

Lua提供了一個偵錯庫,它提供了建立自己的偵錯器的所有原始函式。 在前面的Lua偵錯教學中討論過了。