概要
函式
如果提供的 value 解析為 false 或 nil,將發出錯誤。
停止執行線程並發出錯誤。
返回總記憶堆尺寸以千位元。
返回指定表的可表達式。
返回一個迭代器函數和一個表,用於在 for 循環中使用。
返回提供的代碼作為可以執行的函數。
創建一個空白 userdata , 並為它提供一個可選的 metatable。
用於循環使用的迭代器函數。
返回一個迭代器函數和提供的表,用於在 for 循環中使用。
執行提供的功能,並捕捉任何它投擲的錯誤,返回功能的成功和結果。
列印所有提供的值到輸出。
返回是否 v1 與 v2 相等,忽略其超級方法。
獲得 table[index] 的真正值,無視任何額外方法。
返回字串或表的長度,無視任何超級方法。
設置 table[index] 的真值,無視任何額外方法。
返回指定模組腳本所返回的值,如果尚未執行,則執行它。
返回指定索引後的所有參數。
設置指定表的可表達式。
返回提供的值轉換為數字,或 nil 如果不可能。
返回提供的值轉換為字串,或 nil 如果不可能。
返回提供的對物件的基本類型。
返回指定列表中的所有元組素為 tuple 。
與 pcall() 相似,但使用自訂錯誤處理器。
函式
assert
如果提供的 value 是 false 或 nil,將發生錯誤。如果檢查通過,它將返回所有傳給它的值。
local product = 90 * 4assert(product == 360, "Oh dear, multiplication is broken")-- The line above does nothing, because 90 times 4 is 360
參數
將對抗的值。
如果主張失敗,錯誤中會顯示的文字。
返回
error
終止最後一個被保護的函數呼叫並輸出 message 作為錯誤訊息。如果包含錯誤的功能沒有在保護函數中呼叫,例如 pcall() ,則呼叫該功能的腳本將永久停權。錯誤功能本身永遠不會返回並作為腳本錯誤行動。
level 參數指定如何獲得錯誤位置。使用等級 1 (預設值),錯誤位置是錯誤函數被呼叫的地方。等級 2 指出錯誤發生在哪裡的功能呼叫了錯誤;等等。傳送等級 0 避免將錯誤位置資訊添加到訊息中。
參數
要顯示的錯誤訊息。
應印出的資訊等級。默認值為 1。
返回
getmetatable
如果給定的表有 metatable,則返回其 metatable;否則返回 。如果 t 有一個可轉換的表,且 __metatable 的轉換方法已設設定,則會返回該值。
-- 展示 getmetatable:local meta = {}local t = setmetatable({}, meta)print(getmetatable(t) == meta) --> 真-- 通過設置 __metatable 元方法來使原始可恢復不可恢復:meta.__metatable = "protected"print(getmetatable(t)) --> protected
參數
要擷取表單的對象。
返回
loadstring
從字串載入 Luau 代碼並將其返回為函數。
與標準 Lua 5.1 不同,Roblox 的 Luau 無法使用 loadstring() 載入編譯的 bytecode。
loadstring() 默认被禁用。要啟用它的指引,請參閱 ServerScriptService 。
警告: 此方法會禁用返回的函數上的某些 Luau 最佳化。在使用 loadstring() 時,應採取極度小心,如果您的意圖是讓用戶在您的體驗中執行代碼,請務必使用 getfenv() 和 setfenv() 來保護返回的函數環境。
返回
next
返回 array 中的第一個鑰匙/值對。如果指定了 lastKey 參數,則會根據提供的鑰匙返回陣列中的下一個元素。指數列出的順序不會被指定,即使是數字指數。要按數字順序穿過表,請使用數字迴圈或 ipairs 。
如果在檢索期間將任何值分配給表中的非存在欄位,下一個的行為將被定義為未定義,否則將被定義為已定義。然而,您可以修改現有欄位。特別是,您可以清除現有欄位。
參數
要檢查的陣列。
以前從下一個呼叫中恢復的最後一個鑰匙。
返回
接收任何數量的參數,並將其值輸出到輸出。print 不是用於格式化輸出的,但只是一種快速的方法來顯示值,通常是用於調試。對於格式化輸出,請使用 string.format() 。在 Roblox 上, print 不呼叫 tostring ,但 __tostring 的代理方法仍然會發射,如果表有一個。
參數
要輸出的任何數量的參數。
返回
require
執行供應的 ModuleScript 並返回 ModuleScript 返回的內容 (通常是一個表或一個函數)。如果 ModuleScript 尚未執行,它將被執行。
如果提供了字串路徑,則首先解決為與呼叫 ModuleScript 的腳本相關的 require() ,模擬 Luau 的 require() 表達的 Unix 類似語法。例如,下面的每對 require() 表達式包含兩個功能相同的呼叫。
-- "./" 與 指令碼cript.Parent 相等require(script.Parent.ModuleScript)require("./ModuleScript")-- "../" 與 指令碼cript.Parent.Parent 相等require(script.Parent.Parent.ModuleScript)require("../ModuleScript")
具體來說,需求通過字串的解析意義如下:
- 字串路徑必須以 ./ 或 ../ 開始,其中 ./ 相當於 script.Parent 和 ../ 相當於 script.Parent.Parent 。
- 如果解決的路徑指向不是 的 , 將嘗試尋找名為 或 的父輩,如果存在,並使用它來取代它,如果存在。
一旦返回對象由 初始 require() 的 ModuleScript ,將來對同一 require() (在客戶端服務器邊界相同側面)的相同 ModuleScript 呼叫將不再運行代碼。相反,初始 呼叫創建的同樣 返回對象的參考將提供。這種行為允許在不同的腳本之間共享值,因為多個 require() 來自不同腳本的呼叫將引用相同的返回對物件。如果返回的對象是一個表,表中存儲的任何值都會被共享並對任何需要 ModuleScript 的腳本可訪問。
如上所述,「對象共享」行為不會跨越客戶端與伺服器邊界。這意味著如果 可以存取客戶端 和服務器 (例如放置在 )以及 從兩個 中呼叫 ,那麼在 中的代碼將被兩次運行,而 將從收到的兩個 中收到不同的返回對象。
請注意,如果使用者想要執行的 ModuleScript 已上傳到 Roblox (其名稱為 MainModule ),則可以使用 require() 功能在資產 ID 的 ModuleScript 上載,但只能在服務伺服器上。
參數
將被執行來恢復它提供的返回值或一個參考(字串路徑或資產ID)。
返回
什麼是 ModuleScript 返回的 (通常是一個表或一個函數)。
setmetatable
將 metatable 設置為給定的表 t 到 newMeta。如果 newMeta 是 nil,則 t 的可轉換表被移除。最後,此功能返回傳給它的表 t 。如果 t 已經有一個可轉換的表,其 __metatable 轉換方法已設設定,呼叫此操作在 t 會發生錯誤。
local meta = {__metatable = "protected"}local t = {}setmetatable(t, meta) -- 這會設置 t 的可表達式-- 我們現在有一個表、t,包含一個可變更的元素。如果我們嘗試更改它...setmetatable(t, {}) --> Error: cannot change a protected metatable
參數
設置目標表的表。
如果 nil , 指定表的 metatable t 將被移除。否則,指定表的 metatable t 將被設為。
返回
tonumber
嘗試將 arg 轉換為指定基礎的數字以解釋值。如果無法轉換,此功能將返回 nil 。
基地可以是介於 2 和 36 之間的任何整數,包括在內。在 10 以上的基地中,字母「A」(在上寫或下寫)代表 10、「B」代表 11 等等,「Z」代表 35。在基礎 10 (預設值) 中,數字可能會有十進位部分和可選的指數部分。在其他基礎上,只接受未簽名的整數。
如果字串以 0x 開始,且沒有提供基礎,那麼 0x 將被裁剪,假設基礎是 16 或十六進位。
print(tonumber("1337")) --> 1337 (假設基礎為 10、十進位)print(tonumber("1.25")) --> 1.25 (基礎 10 可能有十進位部分)print(tonumber("3e2")) --> 300 (基礎 10 可能有指數部分, 3 × 10 ^ 2)print(tonumber("25", 8)) --> 21 (基礎 8、八進制)print(tonumber("0x100")) --> 256(假設基礎為 16 位,十六進位)print(tonumber("roblox")) --> nil(未發出錯誤)-- 提示:如果您想將不可轉換的數字轉換為錯誤,請使用Assertprint(assert(tonumber("roblox"))) --> Error: assertion failed
參數
要轉換為數字的對象。
將 arg 轉換為數字基礎。
返回
xpcall
這個功能與 pcall() 相似,除了你可以設置新的錯誤處理器。
xpcall() 呼叫功能 f 在保護模式下,使用 err 作為錯誤處理器,並傳送一個列表的參數。內部的任何錯誤 f 不會傳播;相反,xpcall() 捕捉錯誤,呼叫 err 函數與原始錯誤對物件,並返回狀態代碼。其第一個結果是狀態碼 (一個 boolean),如果呼叫成功且沒有錯誤,它就是真實的。在這種情況下,xpcall() 也會返回呼叫後的所有結果,在這個第一個結果之後。如果發生任何錯誤,xpcall() 將返回 false 加上來自 err 的結果。
與 pcall() 不同,err 函數保留功能 f 的堆栈記錄,可以使用 debug.info() 或 debug.traceback() 檢查。
返回
屬性
_G
一個表,在相同層等級的所有腳本之間共享。
_VERSION
一個全球變量(不是一個函數),包含包含當前解釋器版本的字串。