Lua - 標準庫



Lua 標準庫提供了一套豐富的函式,這些函式是使用 C API 直接實現的,並且是 Lua 程式語言內建的。這些庫在 Lua 程式語言內部以及外部提供服務,例如檔案和資料庫操作。

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

  • 基本庫,包括協程子庫
  • 模組庫
  • 字串操作
  • 表格操作
  • 數學庫
  • 檔案輸入和輸出
  • 作業系統功能
  • 除錯功能

基本庫

我們在本教程的各個主題中都使用了基本庫。下表提供了相關頁面的連結,並列出了在本 Lua 教程的各個部分中介紹的函式。

序號 庫/方法及用途
1

錯誤處理

包括錯誤處理函式,如 assert、error,如 Lua - 錯誤處理 中所述。

2

記憶體管理

包括與垃圾回收相關的自動記憶體管理函式,如 Lua - 垃圾回收 中所述。

3

dofile ([檔名])

它開啟檔案並執行檔案內容作為程式碼塊。如果未傳遞引數,則此函式執行標準輸入的內容。錯誤將傳播到呼叫方。

4

_G

這是儲存全域性環境的全域性變數(即,_G._G = _G)。Lua 本身不使用此變數。

5

getfenv ([f])

返回函式正在使用的當前環境。f 可以是 Lua 函式,也可以是指定該函式在堆疊中位置的數字 - 級別 1 是呼叫 getfenv 的函式。如果給定的函式不是 Lua 函式,或者如果 f 為 0,則 getfenv 返回全域性環境。f 的預設值為 1。

6

getmetatable (物件)

如果物件沒有元表格,則返回 nil。否則,如果物件的元表格具有 "__metatable" 欄位,則返回關聯的值。否則,返回給定物件的元表格。

7

ipairs (t)

此函式獲取表格的索引和值。

8

load (func [, 程式碼塊名稱])

使用函式 func 載入程式碼塊以獲取其片段。對 func 的每次呼叫都必須返回一個與先前結果連線的字串。

9

loadfile ([檔名]))

類似於 load,但從檔案 filename 或標準輸入獲取程式碼塊,如果未給出檔名。

10

loadstring (字串 [, 程式碼塊名稱])

類似於 load,但從給定的字串獲取程式碼塊。

11

next (表格 [, 索引])

允許程式遍歷表格的所有欄位。它的第一個引數是表格,第二個引數是該表格中的索引。next 返回表格的下一個索引及其關聯的值。

12

pairs (t)

掛起正在執行的協程。傳遞給此方法的引數充當 resume 函式的其他返回值。

13

print (...)

掛起正在執行的協程。傳遞給此方法的引數充當 resume 函式的其他返回值。

14

rawequal (v1, v2)

檢查 v1 是否等於 v2,不呼叫任何元方法。返回布林值。

15

rawget (表格, 索引)

獲取表格[索引]的真實值,不呼叫任何元方法。表格必須是表格;索引可以是任何值。

16

rawset (表格, 索引, 值)

將表格[索引]的真實值設定為值,不呼叫任何元方法。表格必須是表格,索引為除 nil 之外的任何值,值可以是任何 Lua 值。此函式返回表格。

17

select (索引, ...)

如果索引是數字,則返回引數編號索引之後的全部引數。否則,索引必須是字串 "#",select 返回它接收到的額外引數的總數。

18

setfenv (f, 表格)

設定要由給定函式使用的環境。f 可以是 Lua 函式,也可以是指定該函式在堆疊中位置的數字 - 級別 1 是呼叫 setfenv 的函式。setfenv 返回給定的函式。作為特例,當 f 為 0 時,setfenv 更改正在執行的執行緒的環境。在這種情況下,setfenv 不返回值。

19

setmetatable (表格, 元表格)

設定給定表格的元表格。(您不能從 Lua 更改其他型別的元表格,只能從 C 更改。)如果元表格為 nil,則刪除給定表格的元表格。如果原始元表格具有 "__metatable" 欄位,則引發錯誤。此函式返回表格。

20

tonumber (e [, 基數])

嘗試將其引數轉換為數字。如果引數已經是數字或可轉換為數字的字串,則 tonumber 返回此數字;否則,它返回 nil。

21

tostring (e)

接收任何型別的引數並將其轉換為合理格式的字串。要完全控制數字的轉換方式,請使用 string.format。

22

type (v)

返回其唯一引數的型別,編碼為字串。此函式的可能結果是“nil”(字串,而不是值 nil)、“number”、“string”、“boolean”、“table”、“function”、“thread”和“userdata”。

23

unpack (列表 [, i [, j]])

返回給定表格中的元素。

24

_VERSION

一個全域性變數(不是函式),它儲存一個包含當前直譯器版本的字串。此變數的當前內容為“Lua 5.1”。

25

協程

包括協程操作函式,如 Lua - 協程 中所述。

模組庫

模組庫提供了在 Lua 中載入模組的基本函式。它在全域性環境中直接匯出一個函式:require。其他所有內容都匯出到表格 package 中。關於模組庫的詳細資訊在前面的章節 Lua - 模組 教程中進行了說明。

字串操作

Lua 提供了一套豐富的字串操作函式。前面的 Lua - 字串 教程詳細介紹了這一點。

表格操作

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

檔案輸入和輸出

在程式設計中,我們經常需要資料儲存功能,這由 Lua 中用於檔案 I/O 的標準庫函式提供。這在前面的 Lua - 檔案 I/O 教程中進行了討論。

除錯功能

Lua 提供了一個除錯庫,該庫為我們提供了建立自己的偵錯程式的所有基本函式。這在前面的 Lua - 除錯 教程中進行了討論。

廣告

© . All rights reserved.