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 resultado.
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, ou nil se impossível.
Retorna o tipo básico do objeto fornecido.
Retorna todos os elementos da lista dada como um tuple.
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 terminará.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 definido, 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 array.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().
Especificamente, a semântica de resolução do require-by-string é a seguinte:
- Caminhos com o prefixo ./ começam a resolução em script.Parent.
- Caminhos com o prefixo ../ começam a resolução em script.Parent.Parent.
- Caminhos com o prefixo @self/ começam a resolução em script.
- Cada componente sem prefixo em um caminho dado corresponde a uma instância filha do componente anterior.A exceção a isso é o componente .., que corresponde ao pai do componente anterior.
- 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.
Para ilustrar isso, cada par de require() expressões no exemplo abaixo contém duas chamadas funcionalmente equivalentes.Parênteses redundantes foram adicionadas para esclarecer exatamente como cada componente de caminho se mapa em uma instância.
-- O prefixo "/" é equivalente a script.Parentrequire("./MySibling")require((script.Parent).(MySibling))-- O prefixo "/" é equivalente a script.Parent.Parentrequire("../SiblingOfMyParent")require((script.Parent.Parent).(SiblingOfMyParent))-- ../" pode ser acoplado para subir vários níveisrequire("../../SiblingOfMyGrandparent")require((script.Parent.Parent).(Parent).(SiblingOfMyGrandparent))-- prefixo "@self" corresponde ao próprio scriptrequire("@self/MyChild")require((script).(MyChild))
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 objeto retornado.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 é definido, 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.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.
Devolução
type
Retorna o tipo de seu único argumento, codificado como uma string.Os resultados possíveis desta função são "nil" (uma string, 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 objeto de 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.