Mecanismo global
Luau globals
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
Resumo
Funções
collectgarbage(operation: string):Variant |
getmetatable(t: Variant):Variant |
loadstring(contents: string,chunkname: string):Variant |
require(module: ModuleScript | string | number):Variant |
setmetatable(t: table,newMeta: Variant):table |
Referência API
Funções
assert
Parâmetros
value:Variant |
| Valor Padrão: assertion failed! |
Devolução
Variant
Amostras de código
Afirmar
local product = 90 * 4
assert(product == 360, "Oh não, a multiplicação está quebrada")
-- A linha acima não faz nada, porque 90 vezes 4 é 360collectgarbage
error
getfenv
getmetatable
getmetatable(t:Variant):Variant
Parâmetros
t:Variant |
Devolução
Variant
Amostras de código
Obter Metatable
local meta = {}
local t = setmetatable({}, meta)
print(getmetatable(t) == meta) --> true
-- Torne a metatable original irrecuperável definindo o metamétodo __metatable:
meta.__metatable = "protegido"
print(getmetatable(t)) --> protegidoipairs
loadstring
newproxy
next
pairs
pcall
Devolução
Amostras de código
Pcall
local function divideByFive(n: number): number
return n / 5
end
local success, errorMessage = pcall(divideByFive, "notANumber") -- Resulta em erro...
if success then
-- Tratar resposta bem-sucedida...
else
print("Mensagem de erro:", errorMessage)
endrawset
require
Parâmetros
Devolução
Variant
Amostras de código
Requerer Resolução de Módulo
-- O prefixo "./" é equivalente a script.Parent
require("./MySibling")
require((script.Parent).MySibling)
-- O prefixo "../" é equivalente a script.Parent.Parent
require("../SiblingOfMyParent")
require((script.Parent.Parent).SiblingOfMyParent)
-- "../" pode ser encadeado para subir múltiplos níveis
require("../../SiblingOfMyGrandparent")
require((script.Parent.Parent).Parent.SiblingOfMyGrandparent)
-- O prefixo "@self" corresponde ao próprio script
require("@self/MyChild")
require((script).MyChild)
-- O prefixo "@game" corresponde à raiz do DataModel
require("@game/ReplicatedStorage/Shared/MyModule")
require((game).ReplicatedStorage.Shared.MyModule)select
setfenv
setmetatable
Parâmetros
newMeta:Variant |
Devolução
Amostras de código
Definir Metatable
local meta = {__metatable = "protegido"}
local t = {}
setmetatable(t, meta) -- Isso define a metatable de t
-- Agora temos uma tabela, t, com uma metatable. Se tentarmos mudá-la...
local ok, err = pcall(setmetatable, t, {})
assert(not ok and err:find("protegido")) -- Erro: não é possível mudar uma metatable protegidatonumber
Parâmetros
arg:Variant |
| Valor Padrão: 10 |
Devolução
Variant
Amostras de código
Tonumber
print(tonumber("1337")) --> 1337 (assume base 10, decimal)
print(tonumber("1.25")) --> 1.25 (base 10 pode ter partes decimais)
print(tonumber("3e2")) --> 300 (base 10 pode ter parte exponencial, 3 × 10 ^ 2)
print(tonumber("25", 8)) --> 21 (base 8, octal)
print(tonumber("0x100")) --> 256 (assume base 16, hexadecimal)
print(tonumber("roblox")) --> nil (não gera um erro)
-- Dica: use com assert se você quiser que números não convertíveis gerem um erro
local ok, err = pcall(function() assert(tonumber("roblox")) end)
print(ok and "Sucesso" or "Erro: " .. tostring(err)) --> Erro: falha na asserçãotostring
unpack
Propriedades