以下是 Lua 的一些基本函數和變量。這些函數可以在 Lua 5.1.4 的標準安裝中使用,雖然有一些差異在 Roblox 上工作。
概要
函式
如果提供的 value 解釋為 false 或 nil ,則會發生錯誤。
停止執行線程並且發生錯誤。
返回千兆內存堆大小。
返回指定桌子的 metatable。
返回一個iterator 函數和一個表,以便在循環中使用。
返回提供的代碼作為可執行的函數。
建立一個空白 userdata ,並且有可能包含 metatable。
一個用於循環中使用的迭代器函數。
返回一個ITERATOR 函數和提供的表,以在 for 循環中使用。
執行提供的函數,並檢查其所發生的任何錯誤,以返回功能的成功和結果。
列出所有輸出供的值。
返回是否 v1 與 v2 平等,或 v1 與 1> v21> 平等。
獲得 table[index] 的實際值,並且忽略任何 metamethodes。
返回任何 metameth 的長度。
使用 table[index] 的實際值,無視任何 metamethode。
返回指定ModuleScript的值,如果尚未執行。
返回所有指定的索引後。
設定指定表的 metatable。
如果無法,將提供的值轉換為數字或零。
如果無法,將提供的值轉換為字串或零。
返物件提供的基本類型。
將所有元素從指定的列表中作為範圍返回。
與 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
參數
值將被要求對應。
如果要求失敗,錯誤中將顯示的文字。
返回
getmetatable
如果有一個,返回指定的表的 metabel t ,否則返回零。如果 t 有 metabel,並且 __metatable 已設定,它將返回指定的值。
-- 展示 getmetatable:local meta = {}local t = setmetatable({}, meta)print(getmetatable(t) == meta) --> 是-- 設置 __metable 的 metameth 方法,讓原始的 metitable 無法恢復:meta.__metatable = "protected"print(getmetatable(t)) --> protected
參數
取得資料的對象。
返回
loadstring
從字串載入 Lua 代碼,並以函數返回。
與標準 Lua 5.1 不同,Roblox 的 Lua 無法使用 loadstring() 載入 Lua 的二進版本。
loadstring() 是由預設啟用。 要取得有關啟用它的指南,請參閱 ServerScriptService。
警告: 此方法會在返回的函數上禁用某些 Luau 最佳化。極端小心應該在使用 loadstring() ;如果您的意圖是允許用戶在您的體驗中執行程式碼,請確保保護返回的函數的環
參數
返回
next
返回陣列中的第一個鑰匙/值對。如果指定了 lastKey 參數,則會在陣列中按照提供的鑰匙返回下一個元素。索引的順序不指定,即使是數字索引也一樣。若要在表中瀏覽,請使用 ipairs 或 ipairs 。
下一個行為將在穿越時,如果您在表中的非存在欄位指定任何值,無效。 您可以修改已存在的欄位,例如清除已存在的欄位。
參數
要穿越的陣列。
上一次從呼叫到下一個的鍵。
返回
接受任何數量的參數,並將其值打印到輸出。 print 不適用於格式輸出,但只是一種快速的方式來顯示值,通常用於調試。對於格式輸出,請使用 string.format() 。在 Roblox
參數
任何輸出的參數。
返回
rawget
不需要呼叫任何 metamethodes 來取得 table[index] 的實際值。
參數
參照桌子。
從 t 取得的索引。
返回
require
執行提供的 ModuleScript 並返回由 ModuleScript 返回的值。 當 Global.LuaGlobals.r需要 必填quire 回來時,其他 2>
如上所述,「對象共享」行為不會
請注意,如果 ModuleScript 要運行的用戶想要運行已上傳到 Roblox (使用 MainModule 的實例名稱),可以使用 require() 函數在資產 ID 的 1> Class.ModuleScript1> 上載入。
參數
會執行的 ModuleScript,以取回它提供的返回值。
返回
Class.ModuleScript 返回的值 (通常為表或函數)。
setmetatable
將指定的表 t 設為 newMeta 。如果 newMeta 為零,則會移除指定的表 1> t1> 的 met表。最後,此功
local meta = {__metatable = "protected"}local t = {}setmetatable(t, meta) -- 這設置 t 的 metatable-- 我們現在有一個表,t,與一個 metatable。如果我們嘗試改變它...setmetatable(t, {}) --> Error: cannot change a protected metatable
參數
用於設置元桌的桌子。
如果為零,則將提供的表的 metatable t 移除。否則,提供的表的 metatable t 。
返回
tonumber
嘗試將 arg 變成指定的數字,以解釋值。如果無法轉換,此函數將返回 nil。
基地可以是任何數字,例如 2 和 36 之間的整數。在基地上 10 之上,字母 'A' (在上方或下方) 代表 10,'B' 代表 11,並且以 'Z' 代表 35。在其他基地中,只有已簽名的整數才能接受。
如果串從 0x 開始,並且不提供基地,0x 將被裁剪,並且基地將預設為 16,或 hexadecimal。
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 (不會提升錯誤)-- 提示:如果您想要使用不可轉換的數字來提升錯誤,請使用與此說明中的「用於」print(assert(tonumber("roblox"))) --> Error: assertion failed
參數
要將對象轉換為數字。
將 arg 轉換為數量基礎。
返回
屬性
_G
一個共享在所有與同一個上下文等級的指令碼之間的表。
_VERSION
一個全球變量(不是函數),包含包含當前解釋器版本的字串。