Lua Globals

顯示已棄用項目

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

以下是 Lua 的一些基本函數和變量。這些函數可以在 Lua 5.1.4 的標準安裝中使用,雖然有一些差異在 Roblox 上工作。

概要

函式

  • assert(value : Variant,errorMessage : string):Variant

    如果提供的 value 解釋為 falsenil ,則會發生錯誤。

  • error(message : string,level : number):()

    停止執行線程並且發生錯誤。

  • 返回千兆內存堆大小。

  • getmetatable(t : Variant):Variant

    返回指定桌子的 metatable。

  • 返回一個iterator 函數和一個表,以便在循環中使用。

  • loadstring(contents : string,chunkname : string):Variant

    返回提供的代碼作為可執行的函數。

  • newproxy(addMetatable : boolean):userdata

    建立一個空白 userdata ,並且有可能包含 metatable。

  • next(t : table,lastKey : Variant):Variant,Variant

    一個用於循環中使用的迭代器函數。

  • 返回一個ITERATOR 函數和提供的表,以在 for 循環中使用。

  • pcall(func : function,args : Tuple):boolean,Variant

    執行提供的函數,並檢查其所發生的任何錯誤,以返回功能的成功和結果。

  • print(params : Tuple):()

    列出所有輸出供的值。

  • rawequal(v1 : Variant,v2 : Variant):boolean

    返回是否 v1v2 平等,或 v1 與 1> v21> 平等。

  • rawget(t : table,index : Variant):Variant

    獲得 table[index] 的實際值,並且忽略任何 metamethodes。

  • 返回任何 metameth 的長度。

  • rawset(t : table,index : Variant,value : Variant):table

    使用 table[index] 的實際值,無視任何 metamethode。

  • require(module : ModuleScript):Variant

    返回指定ModuleScript的值,如果尚未執行。

  • select(index : Variant,args : Tuple):Tuple

    返回所有指定的索引後。

  • setmetatable(t : table,newMeta : Variant):table

    設定指定表的 metatable。

  • tonumber(arg : Variant,base : number):Variant

    如果無法,將提供的值轉換為數字或零。

  • tostring(e : Variant):string

    如果無法,將提供的值轉換為字串或零。

  • type(v : Variant):string

    返物件提供的基本類型。

  • unpack(list : table,i : number,j : number):Variant

    將所有元素從指定的列表中作為範圍返回。

  • xpcall(f : function,err : function,args : Tuple):boolean,Variant

    pcall() 類似,但使用自訂錯誤處理器。

屬性

  • 一個共享在所有與同一個上下文等級的指令碼之間的表。

  • 一個全球變量,包含目前的解釋器版本。

函式

assert

Variant

如果提供的 valuefalsenil ,則會發生錯誤。如果要求通過,它將返回所有傳送給它的值。


local product = 90 * 4
assert(product == 360, "Oh dear, multiplication is broken")
-- The line above does nothing, because 90 times 4 is 360

參數

value: Variant

值將被要求對應。

errorMessage: string

如果要求失敗,錯誤中將顯示的文字。

預設值:assertion failed!

返回

Variant

error

()

終止最後一個受保護的函數,並將 message 作為錯誤訊息輸出。如果包含錯誤的功能在受保護功能中沒有被呼叫,則會發永久停權 pcall() 的錯誤訊息。錯誤功能本身不會返回,並且作為錯誤訊息顯示。

level 參數指定如何取得錯誤位置。使用 1 (預設值),錯誤位置是錯誤功能所在的地方。使用 0 (預設值),錯誤位置是錯誤功能所在的地方;然後再過一個等級 1>01> 就會跳過錯誤位置訊息息。4>04> 通過一個等級

參數

message: string

顯示的錯誤訊息。

level: number

打印的資訊程度。預設為 1。

預設值:1

返回

()

gcinfo

返回總計存取記憶體的大小,以千兆位表示。數字反映操作系統的內存使用率,這會隨著垃圾收集器釋放物件而變化。

返回

getmetatable

Variant

如果有一個,返回指定的表的 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

參數

t: Variant

取得資料的對象。

返回

Variant

ipairs

返回三個值:iter 函數、表 t 和數字 0 。每次呼叫 iter 函數時,它將返回表中的下一個數學索引值雙。在一般 for-Loop 中,將返回值可以在表中索引的所有數學索引值:


local fruits = {"apples", "oranges", "kiwi"}
for index, fruit in ipairs(fruits) do
print(index, fruit) --> 1 蘋果,2 橘子,3 kiwi,等等...
end

參數

一個表的元素將要重複。

loadstring

Variant

從字串載入 Lua 代碼,並以函數返回。

與標準 Lua 5.1 不同,Roblox 的 Lua 無法使用 loadstring() 載入 Lua 的二進版本。

loadstring() 是由預設啟用。 要取得有關啟用它的指南,請參閱 ServerScriptService

警告: 此方法會在返回的函數上禁用某些 Luau 最佳化。極端小心應該在使用 loadstring() ;如果您的意圖是允許用戶在您的體驗中執行程式碼,請確保保護返回的函數的環

參數

contents: string

指定的字串以 Lua 代碼的格式載入。

chunkname: string

一個可選的Chunk名稱,用於錯誤訊息和調試資訊。如果未指定,Lua會使用 contents 字串。

返回

Variant

newproxy

建立一個空白 userdata ,並且有可能包含 metatable。

參數

addMetatable: boolean
預設值:false

返回

返回一個迭代函數,傳回表 tnil ,以便在一般 for 循環中對該表的所有關鍵值/值對進行迭代:


local scores = {
["John"] = 5,
["Sally"] = 10
}
for name, score in pairs(scores) do
print(name .. " has score: " .. score)
end

參數

一個或字典表可以迭代。

pcall

在保護模式中,呼叫 func 並且將所提供的參數傳入。這意味著任何在 func 內發生的錯誤都不會傳訊息;相反, pcall() 會捕

參數

func: function

可以在保護模式中呼叫的函數。

args: Tuple

發送時的參數 func

返回

Variant

print

()

接受任何數量的參數,並將其值打印到輸出。 print 不適用於格式輸出,但只是一種快速的方式來顯示值,通常用於調試。對於格式輸出,請使用 string.format() 。在 Roblox

參數

params: Tuple

任何輸出的參數。

返回

()

rawequal

檢查是否 v1v2 平等,而不需要召喚任何 metamethodes。

參數

v1: Variant

第一個要比較的變量。

v2: Variant

第二個變數以比較。

返回

rawget

Variant

不需要呼叫任何 metamethodes 來取得 table[index] 的實際值。

參數

參照桌子。

index: Variant

t 取得的索引。

返回

Variant

rawlen

不需要呼叫任何 metamethode 返回字串或表的長度。

參數

參照桌子。

返回

rawset

table[index] 的實際值設置為 value ,而不需要呼叫任何 metamethode。

參數

參照桌子。

index: Variant

將索引設置在 t 到指定的 value 。必須與零不同。

value: Variant

值將被設置為指定的 index 在表中 t

返回

require

Variant

執行提供的 ModuleScript 並返回由 ModuleScript 返回的值。 當 Global.LuaGlobals.r需要 必填quire 回來時,其他 2>

如上所述,「對象共享」行為不會

請注意,如果 ModuleScript 要運行的用戶想要運行已上傳到 Roblox (使用 MainModule 的實例名稱),可以使用 require() 函數在資產 ID 的 1> Class.ModuleScript1> 上載入。

參數

module: ModuleScript

會執行的 ModuleScript,以取回它提供的返回值。

返回

Variant

Class.ModuleScript 返回的值 (通常為表或函數)。

select

在 argument 數字後 index 返回所有參數。如果為負,它將從 argument 列表的末端返回。


print(select(2, "A", "B", "C")) --> B
print(select(-1, "A", "B", "C")) --> C

如果 index 參數設為 "#",則在它返回後傳送的參數數量。


print(select("#", "A", "B", "C")) --> 3

參數

index: Variant

args 後返回所有參數的索引。如果它設為 "#",則在它返回後所傳送的參數數量。

args: Tuple

一組參數。

返回

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

參數

用於設置元桌的桌子。

newMeta: Variant

如果為零,則將提供的表的 metatable t 移除。否則,提供的表的 metatable t

返回

tonumber

Variant

嘗試將 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: Variant

要將對象轉換為數字。

base: number

arg 轉換為數量基礎。

預設值:10

返回

Variant

tostring

接受任何類型的參數,並將其轉換為合理格式的字串。對數字的轉換方式進行完全控制,請使用 string.format。如果 e 的 metabel 包含 __tostring 的 metamethode,則會以 e 作為唯一的參數返回結果。


local isRobloxCool = true
-- 將Boolean轉換為字串,然後結合:
print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true

參數

e: Variant

要轉換為字串的對象。

返回

type

返回僅有的參引數,以字串的形式編寫。這個函數的可能結果是 "nil" (一個字串,不是值 nil)、 "number"、 "string"、 "button"、 " thread" 和 "userdata"。

參數

v: Variant

返回類型的對象。

返回

unpack

Variant

從指定的表中返回元素。 預設值為,i是1,jlist的長度,按照長度操作器的定義。

參數

list: table

元素要被解包的列表。

第一個要解包的元素的索引。

預設值:1

最後一個元素的索引。

預設值:#list

返回

Variant

xpcall

這個函數與 pcall() 相似,但你可以設定新的錯誤處理器。

xpcall() 在保��

參數

可以在保護模式中呼叫的函數。

如果 xpcall 發生錯誤,將使用此功能作為錯誤處理。

args: Tuple

返回

Variant

屬性

一個共享在所有與同一個上下文等級的指令碼之間的表。

_VERSION

一個全球變量(不是函數),包含包含當前解釋器版本的字串。