Luau globals

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

A seguir, uma lista de funções e variáveis nativas do Luau.Essas funções podem ser usadas em uma instalação padrão de ambos Luau e Lua 5.1.4, embora haja algumas diferenças em como algumas delas funcionam no Roblox.

Resumo

Funções

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

    Lança um erro se o fornecido value resolver para false ou nil.

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

    Interrompe a execução do subprocesso e lança um erro.

  • Retorna o tamanho total do heap de memória em kilobytes.

  • getmetatable(t : Variant):Variant

    Retorna o metatable da tabela dada.

  • Retorna uma função de iteração e a tabela para uso em um ciclo for.

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

    Retorna o código fornecido como uma função que pode ser executada.

  • newproxy(addMetatable : boolean):userdata

    Cria um vazio userdata, com a opção de ter um metadado.

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

    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 .

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

    Executa a função fornecida e captura qualquer erro que ela jogue, retornando o sucesso da função e seus resultados.

  • print(params : Tuple):()

    Imprime todos os valores fornecidos ao saída.

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

    Retorna se v1 é igual a v2, ignorando seus metamétodos.

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

    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.

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

    Define o valor real de table[index], ignorando quaisquer metodos metálicos.

  • require(module : ModuleScript | string | number):Variant

    Retorna o valor que foi retornado pelo ModuleScript dado, executando-o se ainda não foi executado.

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

    Retorna todos os argumentos após o índice dado.

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

    Define o metadado da tabela dada.

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

    Retorna o valor fornecido convertido em um número, ou nil se impossível.

  • tostring(e : Variant):string

    Retorna o valor fornecido convertido em uma string / cadeia / texto, ou nil se impossível.

  • type(v : Variant):string

    Retorna o tipo básico do Objetofornecido.

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

    Retorna todos os elementos da lista dada como um tupla.

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

    Semelhante a pcall() exceto que usa um manipulador de erros personalizado.

Propriedades

  • Uma tabela que é compartilhada entre todos os scripts do mesmo nível de contexto.

  • Uma variável global que contém uma string que contém a versão atual do interpretador.

Funções

assert

Variant

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 * 4
assert(product == 360, "Oh dear, multiplication is broken")
-- The line above does nothing, because 90 times 4 is 360

Parâmetros

value: Variant

O valor que será afirmado contra.

errorMessage: string

O texto que será mostrado no erro se a afirmação falhar.

Valor Padrão: assertion failed!

Devolução

Variant

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

message: Variant

A mensagem de erro para exibir.

level: number

O nível de informação que deve ser impresso. Padrão para 1.

Valor Padrão: 1

Devolução

()

gcinfo

Retorna o tamanho total do heap de memória em kilobytes.O número reflete o consumo atual de heap da perspectiva do sistema operacional, que oscila ao longo do tempo à medida que o coletor de lixo libera objetos.

Devolução

getmetatable

Variant

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

t: Variant

O objeto para recuperar o metatable de.

Devolução

Variant

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) do
print(index, fruit) --> 1 maçãs, 2 laranjas, 3 kiwi, etc...
end

Parâmetros

Uma tabela cujos elementos devem ser iterados.

loadstring

Variant

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

contents: string

A corda especificada para ser carregada como código Luau.

chunkname: string

Um nome de segmento opcional para mensagens de erro e informações de depuração. Se não especificado, o Luau usa a string / cadeia / textocontents.

Devolução

Variant

newproxy

Cria um vazio userdata, com a opção de ter um metadado.

Parâmetros

addMetatable: boolean
Valor Padrão: false

Devolução

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) do
print(name .. " has score: " .. score)
end

Parâmetros

Uma tabela de array ou dicionário para iterar.

Devolução

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

func: function

A função a ser chamada no modo protegido.

args: Tuple

Os argumentos para enviar para func ao executar.

Devolução

Variant

print

()

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

params: Tuple

Qualquer número de argumentos a serem exibidos.

Devolução

()

rawequal

Verifica se v1 é igual a v2 , sem invocar quaisquer metodos auxiliares.

Parâmetros

v1: Variant

A primeira variável para comparar.

v2: Variant

A segunda variável para comparar.

Devolução

rawget

Variant

Obtém o valor real de table[index] , sem invocar quaisquer metodos metálicos.

Parâmetros

A tabela a ser referenciada.

index: Variant

O índice para obter de t .

Devolução

Variant

rawlen

Retorna o comprimento da string ou da tabela, sem invocar quaisquer metodos metálicos.

Parâmetros

A tabela a ser referenciada.

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.

index: Variant

O índice para definir em t para um especificado value . Deve ser diferente de nil .

value: Variant

O valor a ser definido para um especificado index na tabela t.

Devolução

require

Variant

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.Parent
require(script.Parent.ModuleScript)
require("./ModuleScript")
-- ../" é equivalente a script.Parent.Parent
require(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

Variant

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 C
print(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

index: Variant

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.

args: Tuple

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.

newMeta: Variant

Se nil , o metatable da tabela dada t é removido. Caso contrário, o metatable para definir para a tabela dada t .

Devolução

tonumber

Variant

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 erro
print(assert(tonumber("roblox"))) --> Error: assertion failed

Parâmetros

arg: Variant

O objeto a ser convertido em um número.

base: number

A base numérica para converter arg em.

Valor Padrão: 10

Devolução

Variant

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

e: Variant

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

v: Variant

O objeto para retornar o tipo de.

Devolução

unpack

Variant

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

list: table

A lista de elementos a serem desempacotados.

O índice do primeiro elemento a desembrulhar.

Valor Padrão: 1

O índice do último elemento a desembrulhar.

Valor Padrão: #list

Devolução

Variant

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

A função a ser chamada no modo protegido.

A função a ser usada como um handle de erro se xpcall capturar um erro.

args: Tuple

Devolução

Variant

Propriedades

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.