學習
引擎全域
Luau globals

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


概要

函式
assert(value: Variant,errorMessage: string):Variant
collectgarbage(operation: string):Variant
已棄用
error(message: Variant,level: number):()
getfenv(stack: Variant):table
已棄用
getmetatable(t: Variant):Variant
loadstring(contents: string,chunkname: string):Variant
newproxy(addMetatable: boolean):userdata
next(t: table,lastKey: Variant):Variant,Variant
pcall(func: function,args: Tuple):boolean,Variant
print(params: Tuple):()
rawequal(v1: Variant,v2: Variant):boolean
rawget(t: table,index: Variant):Variant
rawset(t: table,index: Variant,value: Variant):table
require(module: ModuleScript | string | number):Variant
select(index: Variant,args: Tuple):Tuple
setfenv(f: Variant,fenv: table):Variant
已棄用
setmetatable(t: table,newMeta: Variant):table
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

API 參考
函式
assert
assert(
value:Variant, errorMessage:string
):Variant
參數
value:Variant
errorMessage:string
預設值:assertion failed!
返回
Variant
範例程式碼
斷言
local product = 90 * 4
assert(product == 360, "哦,乘法壞掉了")
-- 上面的行沒有任何作用,因為 90 乘以 4 等於 360

collectgarbage
已棄用

error
error(
message:Variant, level:number
):()
參數
message:Variant
level:number
預設值:1
返回
()

gcinfo
gcinfo():number
返回

getfenv
已棄用

getmetatable
getmetatable(t:Variant):Variant
參數
t:Variant
返回
Variant
範例程式碼
獲取元表
local meta = {}
local t = setmetatable({}, meta)
print(getmetatable(t) == meta) --> true
-- 通過設置 __metatable 元方法使原始元表無法恢復:
meta.__metatable = "受保護"
print(getmetatable(t)) --> protected

ipairs
參數
範例程式碼
Ipairs
local fruits = {"apples", "oranges", "kiwi"}
for index, fruit in ipairs(fruits) do
print(index, fruit) --> 1 蘋果, 2 橙子, 3 奇異果, 等等...
end

loadstring
loadstring(
contents:string, chunkname:string
):Variant
參數
contents:string
chunkname:string
返回
Variant

newproxy
newproxy(addMetatable:boolean):userdata
參數
addMetatable:boolean
預設值:false
返回

next
next(
t:table, lastKey:Variant
):Variant,Variant
參數
lastKey:Variant
預設值:nil
返回
Variant, Variant

pairs
pairs(t:table):function,table,Variant
參數
返回
function, table, Variant
範例程式碼
配對
local scores = {
["John"] = 5,
["Sally"] = 10
}
for name, score in pairs(scores) do
print(name .. " 的分數: " .. score)
end

pcall
pcall(
func:function, args:Tuple
):boolean,Variant
參數
args:Tuple
返回
boolean, Variant
範例程式碼
Pcall
local function divideByFive(n: number): number
return n / 5
end
local success, errorMessage = pcall(divideByFive, "notANumber") -- 會導致錯誤...
if success then
-- 處理成功的回應...
else
print("錯誤訊息:", errorMessage)
end

print
print(params:Tuple):()
參數
params:Tuple
返回
()

rawequal
rawequal(
v1:Variant, v2:Variant
參數
v1:Variant
v2:Variant
返回

rawget
rawget(
t:table, index:Variant
):Variant
參數
index:Variant
返回
Variant

rawlen
rawlen(t:table):number
參數
返回

rawset
rawset(
t:table, index:Variant, value:Variant
參數
index:Variant
value:Variant
返回

require
require(module:ModuleScript | string | number):Variant
參數
返回
Variant
範例程式碼
需要模組解析
-- "./" 前綴等同於 script.Parent
require("./MySibling")
require((script.Parent).MySibling)
-- "../" 前綴等同於 script.Parent.Parent
require("../SiblingOfMyParent")
require((script.Parent.Parent).SiblingOfMyParent)
-- "../" 可以鏈接以向上多層
require("../../SiblingOfMyGrandparent")
require((script.Parent.Parent).Parent.SiblingOfMyGrandparent)
-- "@self" 前綴對應於腳本本身
require("@self/MyChild")
require((script).MyChild)
-- "@game" 前綴對應於 DataModel 根
require("@game/ReplicatedStorage/Shared/MyModule")
require((game).ReplicatedStorage.Shared.MyModule)

select
select(
index:Variant, args:Tuple
參數
index:Variant
args:Tuple
返回
範例程式碼
選擇
print(select(2, "A", "B", "C")) --> B C
print(select(-1, "A", "B", "C")) --> C
print(select("#", "A", "B", "C")) --> 3

setfenv
已棄用

setmetatable
setmetatable(
t:table, newMeta:Variant
參數
newMeta:Variant
返回
範例程式碼
設置元表
local meta = {__metatable = "protected"}
local t = {}
setmetatable(t, meta) -- 這會設置 t 的元表
-- 我們現在有一個表 t,並且有一個元表。如果我們嘗試更改它...
local ok, err = pcall(setmetatable, t, {})
assert(not ok and err:find("protected")) -- 錯誤:無法更改受保護的元表

tonumber
tonumber(
arg:Variant, base:number
):Variant
參數
arg:Variant
base:number
預設值:10
返回
Variant
範例程式碼
轉換為數字
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 (不會引發錯誤)
-- 提示:如果您希望無法轉換的數字引發錯誤,請與 assert 一起使用
local ok, err = pcall(function() assert(tonumber("roblox")) end)
print(ok and "成功" or "錯誤: " .. tostring(err)) --> 錯誤: 斷言失敗

tostring
tostring(e:Variant):string
參數
e:Variant
返回
範例程式碼
轉換為字串
local isRobloxCool = true
-- 將布林值轉換為字串然後串接:
print("Roblox 是酷的: " .. tostring(isRobloxCool)) --> Roblox 是酷的: true

type
type(v:Variant):string
參數
v:Variant
返回

unpack
unpack(
list:table, i:number, j:number
):Variant
參數
list:table
預設值:1
預設值:#list
返回
Variant

xpcall
xpcall(
f:function, err:function, args:Tuple
):boolean,Variant
參數
args:Tuple
返回
boolean, Variant

屬性
_G

_VERSION
_VERSION:string

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。