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
Lança um erro se o fornecido value resolver para false ou nil.
Interrompe a execução do subprocesso e lança um erro.
Retorna o tamanho total do heap de memória em kilobytes.
Retorna o metatable da tabela dada.
Retorna uma função de iteração e a tabela para uso em um ciclo for.
Retorna o código fornecido como uma função que pode ser executada.
Cria um vazio userdata, com a opção de ter um metadado.
Uma função de iteração para uso em loops.
Retorna uma função de iteração e a tabela fornecida para uso em um ciclo for .
Executa a função fornecida e captura qualquer erro que ela jogue, retornando o sucesso da função e seus resultados.
Imprime todos os valores fornecidos ao saída.
Retorna se v1 é igual a v2, ignorando seus metamétodos.
Obtém o valor real de table[index], ignorando quaisquer metodos metálicos.
Retorna o comprimento da string ou da tabela, ignorando quaisquer metodos metálicos.
Define o valor real de table[index], ignorando quaisquer metodos metálicos.
Retorna o valor que foi retornado pelo ModuleScript dado, executando-o se ainda não foi executado.
Retorna todos os argumentos após o índice dado.
Define o metadado da tabela dada.
Retorna o valor fornecido convertido em um número, ou nil se impossível.
Retorna o valor fornecido convertido em uma string / cadeia / texto, ou nil se impossível.
Retorna o tipo básico do Objetofornecido.
Retorna todos os elementos da lista dada como um tupla.
Semelhante a pcall() exceto que usa um manipulador de erros personalizado.
Funções
assert
Lança um erro se o fornecido value for false ou nil. Se a afirmação passar, retorna todos os valores passados a ela.
local product = 90 * 4assert(product == 360, "Oh dear, multiplication is broken")-- The line above does nothing, because 90 times 4 is 360
Parâmetros
O valor que será afirmado contra.
O texto que será mostrado no erro se a afirmação falhar.
Devolução
error
Termina a última função protegida chamada e exibe message como uma mensagem de erro.Se a função que contém o erro não for chamada em uma função protegida como pcall(), então o script que chamou a função encerrar.A própria função de erro nunca retorna e atua como um erro de script.
O argumento level especifica como obter a posição do erro.Com o nível 1 (o padrão), a posição de erro é onde a função de erro foi chamada.O nível 2 aponta o erro para onde a função que chamou o erro foi chamada; e assim por diante.Passar um nível 0 evita a adição de informações de posição de erro à mensagem.
Parâmetros
A mensagem de erro para exibir.
O nível de informação que deve ser impresso. Padrão para 1.
Devolução
getmetatable
Retorna o metatable da tabela dada t se tiver um, caso contrário retorna nil .Se t tem um metatable, e o __metatable metamétodo for configurar, ele retorna esse valor em vez disso.
-- Demostrar getmetatable:local meta = {}local t = setmetatable({}, meta)print(getmetatable(t) == meta) --> verdadeiro-- Faça o metadado original irre recuperável definindo o método __metadado metamétodo:meta.__metatable = "protected"print(getmetatable(t)) --> protected
Parâmetros
O objeto para recuperar o metatable de.
Devolução
ipairs
Retorna três valores: uma função de iteração, a tabela t e o número 0.Cada vez que a função iterador é chamada, ela retorna o próximo par de índice-valor numérico na tabela.Quando usado em um ciclo for genérico, os valores de retorno podem ser usados para iterar sobre cada índice numérico na tabela:
local fruits = {"apples", "oranges", "kiwi"}for index, fruit in ipairs(fruits) doprint(index, fruit) --> 1 maçãs, 2 laranjas, 3 kiwi, etc...end
Parâmetros
Uma tabela cujos elementos devem ser iterados.
loadstring
Carrega código Luau de uma string e retorna como uma função.
Ao contrário do Lua padrão 5.1, o Luau do Roblox não pode carregar o bytecode compilado usando loadstring().
loadstring() está desativado por padrão. Para orientação sobre como ativá-lo, veja ServerScriptService .
AVISO: Este método desabilita certas otimizações de Luau na função retornada.Muito cuidado deve ser tomado ao usar loadstring() ; se a sua intenção é permitir que os usuários executem código em sua experiência, certifique-se de proteger o ambiente da função retornada usando getfenv() e setfenv() .
Parâmetros
Devolução
next
Retorna o primeiro par de chave/valor no matriz / lista.Se um argumento lastKey fosse especificado, então retorna o próximo elemento na matriz com base na chave fornecida.A ordem em que os índices são enumerados não é especificada, mesmo para índices numéricos.Para percorrer uma tabela em ordem numérica, use um número para ciclo ou ipairs .
O comportamento do próximo é definido se, durante a traversal, você atribuir qualquer valor a um campo não existente na tabela.Você pode, no entanto, modificar campos existentes.Em particular, você pode limpar campos existentes.
Parâmetros
O array a ser percorrido.
A última chave que foi previamente recuperada de uma chamada para a próxima.
Devolução
pairs
Retorna uma função de iteração, a tabela passada t e nil, para que a construção itere sobre todos os pares de chave/valor daquela tabela quando usada em um ciclo genérico for:
local scores = {["John"] = 5,["Sally"] = 10}for name, score in pairs(scores) doprint(name .. " has score: " .. score)end
Parâmetros
Uma tabela de array ou dicionário para iterar.
pcall
Chama a função func com os argumentos dados no modo protegido.Isso significa que qualquer erro dentro de func não é propagado; em vez disso, pcall() captura o erro e retorna um código de status.Seu primeiro resultado é o código de status (um booleano), que é verdadeiro se a chamada for bem-sucedida sem erros.Nesse caso, pcall() também retorna todos os resultados da chamada, após esse primeiro resultado.Em caso de qualquer erro, pcall() retorna falso mais a mensagem de erro.
Parâmetros
Devolução
Recebe qualquer número de argumentos e imprime seus valores na saída.print não é destinado para saída formatada, mas apenas como uma maneira rápida de mostrar um valor, geralmente para depuração.Para uma saída formatada, use string.format() .No Roblox, print não chama tostring , mas o __tostring metamétodo ainda dispara se a tabela tiver um.
Parâmetros
Qualquer número de argumentos a serem exibidos.
Devolução
rawget
Obtém o valor real de table[index] , sem invocar quaisquer metodos metálicos.
Parâmetros
A tabela a ser referenciada.
O índice para obter de t .
Devolução
rawset
Define o valor real de table[index] para um dado value, sem invocar nenhum metamétodo.
Parâmetros
A tabela a ser referenciada.
O índice para definir em t para um especificado value . Deve ser diferente de nil .
O valor a ser definido para um especificado index na tabela t.
Devolução
require
Executa o fornecido ModuleScript e retorna o que o ModuleScript retornou (geralmente uma tabela ou uma função).Se o ModuleScript ainda não foi executado, ele será executado.
Se um caminho de corda for fornecido em vez disso, ele é resolvido primeiro para um ModuleScript relativo ao script que chamou require(), imitando a semântica Unix-like da expressão Luau's require().Por exemplo, cada par de require() expressões no exemplo abaixo contém duas chamadas funcionalmente equivalentes.
-- "./" é equivalente a script.Parentrequire(script.Parent.ModuleScript)require("./ModuleScript")-- ../" é equivalente a script.Parent.Parentrequire(script.Parent.Parent.ModuleScript)require("../ModuleScript")
Especificamente, a semântica de resolução do require-by-string é a seguinte:
- Os caminhos de corda devem começar com ./ ou ../, onde ./ é equivalente a script.Parent e ../ é equivalente a script.Parent.Parent.
- Se o caminho resolvido apontar para um Instance que não é um ModuleScript , require() tentará encontrar um ModuleScript chamado Init ou init parentado a esse Instance e usá-lo em vez disso, se ele existir.
- Se o desejado ModuleScript não estiver presente no momento em que require() for chamado, a chamada falhará e lançará um erro.Em outras palavras, require-by-string é não bloqueante: ele não aguarda implicitamente a criação de um ModuleScript para ser criado.
Uma vez que o objeto de retorno é criado por uma chamada inicial de de um , futuras chamadas de (no mesmo lado da fronteira cliente-servidor) não executarão o código novamente.Em vez disso, uma referência ao objeto de retorno mesmo criado pela chamada inicial require() será fornecida.Este comportamento permite a partilha de valores através de diferentes scripts, pois várias chamadas require() de diferentes scripts referenciarão o mesmo Objetoretornado.Se o objeto retornado for uma tabela, quaisquer valores armazenados dentro da tabela são compartilhados e acessíveis por qualquer script que requer que ModuleScript.
Como observado acima, o comportamento de "compartilhamento de objetos" não cruza a fronteira cliente-servidor.Isso significa que se um for acessível tanto ao cliente e ao servidor (como sendo colocado em ) e for chamado tanto de um quanto de um , o código no será executado duas vezes e o receberá um objeto de retorno distinto do recebido pelo .
Observe também que se o ModuleScript o usuário quiser executar foi carregado no Roblox (com o nome da instância sendo MainModule ), ele pode ser carregado usando a função require() na ID do recurso do ModuleScript, embora apenas no servidor.
Parâmetros
O ModuleScript que será executado para recuperar o valor de retorno que fornece ou uma referência a um (um caminho de corda ou ID de recurso).
Devolução
O que o ModuleScript retornou (geralmente uma tabela ou uma função).
select
Retorna todos os argumentos após o número de argumento index. Se for negativo, retornará do fim da lista de argumentos.
print(select(2, "A", "B", "C")) --> B Cprint(select(-1, "A", "B", "C")) --> C
Se o argumento index for definido como "#", o número de argumentos que foram passados após ser retornado.
print(select("#", "A", "B", "C")) --> 3
Parâmetros
O índice do argumento para retornar todos os argumentos após em args .Se for definido como "#", o número de argumentos que foram passados após ser retornado.
Um tuple de argumentos.
Devolução
setmetatable
Define o metatable para a tabela dada t para newMeta.Se newMeta for nil, o metatable de t é removido.Finalmente, essa função retorna a tabela t que foi passada para ela.Se t já tem uma tabela metável cujo __metatable metamétodo é configurar, chamar isso em t levanta um erro.
local meta = {__metatable = "protected"}local t = {}setmetatable(t, meta) -- Isso define o metatable de t-- Agora temos uma tabela, t, com um metatable. Se tentarmos alterá-la...setmetatable(t, {}) --> Error: cannot change a protected metatable
Parâmetros
A tabela para definir o metatable de.
Se nil , o metatable da tabela dada t é removido. Caso contrário, o metatable para definir para a tabela dada t .
Devolução
tonumber
Tentativas de converter o arg em um número com uma base especificada para interpretar o valor em.Se não puder ser convertido, essa função retorna nil .
A base pode ser qualquer inteiro entre 2 e 36, incluindo.Em bases acima de 10, a letra 'A' (em maiúscula ou minúscula) representa 10, 'B' representa 11, e assim por diante, com 'Z' representando 35.Na base 10 (o padrão), o número pode ter uma parte decimal e uma parte de exponência opcional.Em outras bases, apenas inteiros não assinados são aceitos.
Se uma string começar com 0x e uma base não for fornecida, o 0x é cortado e a base é presumida ser 16 ou hexadecimal.
print(tonumber("1337")) --> 1337 (assume base 10, decimal)print(tonumber("1.25")) --> 1.25 (base 10 pode ter porções decimais)print(tonumber("3e2")) --> 300 (base 10 pode ter parte de exponência, 3 × 10 ^ 2)print(tonumber("25", 8)) --> 21 (base 8, oitava)print(tonumber("0x100")) --> 256 (assume base 16, hexadecimal)print(tonumber("roblox")) --> nil (não levanta um erro)-- Dica: use com assert se você quiser números não convertíveis para levantar um erroprint(assert(tonumber("roblox"))) --> Error: assertion failed
Parâmetros
O objeto a ser convertido em um número.
A base numérica para converter arg em.
Devolução
tostring
Recebe um argumento de qualquer tipo e o converte em uma string em um formato razoável.Para controle completo de como os números são convertidos, use string / cadeia / texto.format.Se o metatable de e tiver um metamétodo __tostring, então será chamado com e como o único argumento e retornará o resultado.
local isRobloxCool = true-- Converta o booleano em uma string e concatenar:print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true
Parâmetros
O objeto a ser convertido em uma string / cadeia / texto.
Devolução
type
Retorna o tipo de seu único argumento, codificado como uma string / cadeia / texto.Os resultados possíveis desta função são "nil" (uma string / cadeia / texto, não o valor nil), "number" , "string" , "boolean" , "table" , "vector" , "function" , "thread" , "userdata" , e "buffer" .Os primitivos buffer e vector são adições de Luau, não de Lua.
Parâmetros
O objeto para retornar o tipo de.
Devolução
unpack
Retorna os elementos da tabela dada.Por padrão, i é 1 e j é a comprimento de list , conforme definido pelo operador de comprimento.
Parâmetros
Devolução
xpcall
Essa função é semelhante a pcall(), exceto que você pode definir um novo manipulador de erros.
xpcall() chamadas a função f no modo protegido, usando err como manipulador de erros e passa uma lista de argumentos.Qualquer erro dentro de f não é propagado; em vez disso, xpcall() captura o erro, chama a função err com o Objetode erro original e retorna um código de status.Seu primeiro resultado é o código de status (um booleano), que é verdadeiro se a chamada for bem-sucedida sem erros.Neste caso, xpcall() também retorna todos os resultados da chamada, após esse primeiro resultado.Em caso de qualquer erro, xpcall() retorna falso mais o resultado de err .
Ao contrário de pcall() , a função err preserva o rastro de pilha da função f, que pode ser inspecionada usando debug.info() ou debug.traceback().
Parâmetros
Devolução
Propriedades
_G
Uma tabela que é compartilhada entre todos os scripts do mesmo nível de contexto.
_VERSION
Uma variável global (não uma função) que armazena uma string que contém a versão atual do interpretador.