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 resultado.

  • 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, ou nil se impossível.

  • type(v : Variant):string

    Retorna o tipo básico do objeto fornecido.

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

    Retorna todos os elementos da lista dada como um tuple.

  • 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 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

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 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

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 contents.

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().

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.Parent
require("./MySibling")
require((script.Parent).(MySibling))
-- O prefixo "/" é equivalente a script.Parent.Parent
require("../SiblingOfMyParent")
require((script.Parent.Parent).(SiblingOfMyParent))
-- ../" pode ser acoplado para subir vários níveis
require("../../SiblingOfMyGrandparent")
require((script.Parent.Parent).(Parent).(SiblingOfMyGrandparent))
-- prefixo "@self" corresponde ao próprio script
require("@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

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 é 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.

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.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.

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

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 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

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.