Luau globals

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Lo siguiente es una lista de funciones y variables que son nativas de Luau.Estas funciones se pueden utilizar en una instalación estándar de ambos Luau y Lua 5.1.4, aunque hay algunas diferencias en cómo funcionan algunas de estas en Roblox.

Resumen

Funciones

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

    Lanza un error si el proporcionado value resuelve a false o nil .

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

    Detiene la ejecución del hilo y lanza un error.

  • Devuelve el tamaño total del heap de memoria en kilobytes.

  • getmetatable(t : Variant):Variant

    Devuelve el metatable de la tabla dada.

  • Devuelve una función iteradora y la tabla para su uso en un bucle for.

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

    Devuelve el código proporcionado como una función que se puede ejecutar.

  • newproxy(addMetatable : boolean):userdata

    Crea un vacío userdata , con la opción de que tenga una tabla metálica.

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

    Una función iteradora para usar en bucles.

  • Devuelve una función iteradora y la tabla proporcionada para su uso en un bucle for .

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

    Ejecuta la función proporcionada y captura cualquier error que lance, devolviendo el éxito de la función y sus resultados.

  • print(params : Tuple):()

    Imprime todos los valores proporcionados al Salida.

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

    Devuelve si v1 es igual a v2 , omitiendo sus metamétodos.

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

    Obtiene el valor real de table[index] , omitiendo cualquier metamétodo.

  • Devuelve la longitud de la cadena o de la tabla, omitiendo cualquier metamétodo.

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

    Establece el valor real de table[index] , omitiendo cualquier metamétodo.

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

    Devuelve el valor que fue devuelto por el ModuleScript dado, ejecutándolo si aún no se ha ejecutado.

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

    Devuelve todos los argumentos después del índice dado.

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

    Establece el metatable de la tabla dada.

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

    Devuelve el valor proporcionado convertido a un número, o nil si es imposible.

  • tostring(e : Variant):string

    Devuelve el valor proporcionado convertido a una cadena, o nil si es imposible.

  • type(v : Variant):string

    Retorna el tipo básico del objeto proporcionado.

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

    Devuelve todos los elementos de la lista dada como un tupla.

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

    Similar a pcall() excepto que usa un manejador de errores personalizado.

Propiedades

  • Una tabla que se comparte entre todos los scripts del mismo nivel de contexto.

  • Una variable global que contiene una cadena que contiene la versión actual del intérprete.

Funciones

assert

Variant

Lanza un error si el proporcionado value es false o nil . Si la afirmación pasa, devuelve todos los valores que se le pasaron.


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

El valor que se afirmará contra.

errorMessage: string

El texto que se mostrará en el error si la afirmación falla.

Valor predeterminado: assertion failed!

Devuelve

Variant

error

()

Termina la última función protegida llamada y produce message como un mensaje de error.Si la función que contiene el error no se llama en una función protegida como pcall(), entonces el script que llamó la función cancelar.La función de error en sí nunca regresa y actúa como un error de script.

El argumento level especifica cómo obtener la posición del error.Con el nivel 1 (el predeterminado), la posición de error es donde se llamó la función de error.El nivel 2 apunta el error a donde se llamó la función que llamó el error; y así sucesivamente.Pasar un nivel 0 evita la adición de información de posición de error a el mensaje.

Parámetros

message: Variant

El mensaje de error para mostrar.

level: number

El nivel de información que debe imprimirse. Se prefiere 1.

Valor predeterminado: 1

Devuelve

()

gcinfo

Devuelve el tamaño total del heap de memoria en kilobytes.El número refleja el consumo actual de la pila desde la perspectiva del sistema operativo, que fluctúa con el tiempo a medida que el recolector de basura libera objetos.

Devuelve

getmetatable

Variant

Devuelve el metatable de la tabla dada t si tiene uno, de lo contrario devuelve nil .Si t tiene un metatable, y el __metatable metamétodo está establecer, devuelve ese valor en lugar.


-- Demostrar getmetitable:
local meta = {}
local t = setmetatable({}, meta)
print(getmetatable(t) == meta) --> cierto
-- Haz que el metadato original no se pueda recuperar estableciendo el metamétodo __metatable:
meta.__metatable = "protected"
print(getmetatable(t)) --> protected

Parámetros

t: Variant

El objeto para recuperar el metatable de.

Devuelve

Variant

ipairs

Devuelve tres valores: una función iteradora, la tabla t y el número 0.Cada vez que se llama la función iteradora, devuelve el siguiente par de índice-valor numérico en la tabla.Cuando se usa en un bucle for genérico, los valores de devolución se pueden usar para iterar sobre cada índice numérico en la tabla:


local fruits = {"apples", "oranges", "kiwi"}
for index, fruit in ipairs(fruits) do
print(index, fruit) --> 1 manzanas, 2 naranjas, 3 kiwi, etc...
end

Parámetros

Una tabla cuyos elementos se deben iterar.

loadstring

Variant

Carga código Luau de una cadena y lo devuelve como función.

A diferencia del Lua estándar 5.1, Luau de Roblox no puede cargar el código binario compilado usando loadstring() .

loadstring() está deshabilitado por defecto. Para obtener orientación sobre cómo habilitarlo, consulte ServerScriptService .

ADVERTENCIA: Este método desactiva ciertas optimizaciones de Luau en la función devuelta.Se debe tener mucho cuidado al usar loadstring() ; si tu intención es permitir que los usuarios ejecuten código en tu experiencia, asegúrate de proteger el entorno de la función devuelta usando getfenv() y setfenv() .

Parámetros

contents: string

La cadena especificada para cargar como código Luau.

chunkname: string

Un nombre de segmento opcional para mensajes de error y información de depuración. Si no se especifica, Luau usa la cadena contents.

Devuelve

Variant

newproxy

Crea un vacío userdata , con la opción de que tenga una tabla metálica.

Parámetros

addMetatable: boolean
Valor predeterminado: false

Devuelve

Devuelve una función iteradora, la tabla pasada t , y nil , para que la construcción iterará sobre todos los pares clave/valor de esa tabla cuando se utiliza en un bucle genérico for :


local scores = {
["John"] = 5,
["Sally"] = 10
}
for name, score in pairs(scores) do
print(name .. " has score: " .. score)
end

Parámetros

Una tabla de array o diccionario para iterar.

pcall

Llama a la función func con los argumentos dados en modo protegido.Esto significa que cualquier error dentro de func no se propaga; en cambio, pcall() captura el error y devuelve un código de estado.Su primer resultado es el código de estado (un booleano), que es verdadero si la llamada tiene éxito sin errores.En tal caso, pcall() también devuelve todos los resultados de la llamada, después de este primer resultado.En caso de cualquier error, pcall() devuelve false más el mensaje de error.

Parámetros

func: function

La función que se llamará en modo protegido.

args: Tuple

Los argumentos para enviar a func cuando se ejecuta.

Devuelve

Variant

print

()

Recibe cualquier número de argumentos y los imprime en el Salida. print no está destinado a la Salidaformatada, pero solo como una forma rápida de mostrar un valor, generalmente para la depuración.Para una Salidaformatada, use string.format() .En Roblox, print no llama a tostring , pero el método metálico __tostring sigue disparando si la tabla tiene uno.

Parámetros

params: Tuple

Cualquier número de argumentos a ser emitidos.

Devuelve

()

rawequal

Comprueba si v1 es igual a v2 sin invocar ningún metamétodo.

Parámetros

v1: Variant

La primera variable para comparar.

v2: Variant

La segunda variable para comparar.

Devuelve

rawget

Variant

Obtiene el valor real de table[index] , sin invocar ningún metamétodo.

Parámetros

La tabla para ser referenciada.

index: Variant

El índice para obtener de t .

Devuelve

Variant

rawlen

Devuelve la longitud de la cadena o de la tabla, sin invocar ningún metamétodo.

Parámetros

La tabla para ser referenciada.

Devuelve

rawset

Establece el valor real de table[index] a un dado value, sin invocar ningún metamétodo.

Parámetros

La tabla para ser referenciada.

index: Variant

El índice para establecer en t a un especificado value . Debe ser diferente de nil .

value: Variant

El valor que se debe establecer a un especificado index en la tabla t.

Devuelve

require

Variant

Ejecuta el suministrado ModuleScript y devuelve lo que el ModuleScript devolvió (normalmente una tabla o una función).Si el ModuleScript no se ha ejecutado aún, se ejecutará.

Si se proporciona un camino de cadena en lugar de eso, se resuelve primero a un ModuleScript relativo al script que llamó require() , imitando la semántica Unix-like de la expresión de Luau require().Por ejemplo, cada par de require() expresiones en el ejemplo a continuación contiene dos llamadas funcionalmente equivalentes.


-- ./" es equivalente a script.Parent
require(script.Parent.ModuleScript)
require("./ModuleScript")
-- "../" es equivalente a script.Parent.Parent
require(script.Parent.Parent.ModuleScript)
require("../ModuleScript")

En particular, la semántica de resolución de require-by-string es la siguiente:

  • Los caminos de cadena deben comenzar con ./ o ../, donde ./ es equivalente a script.Parent y ../ es equivalente a script.Parent.Parent .
  • Si el camino resuelto apunta a un Instance que no es un ModuleScript , require() intentará encontrar un ModuleScript llamado Init o init patrocinado a ese Instance y lo usará en su lugar, si existe.
  • Si el deseado ModuleScript no está presente en el momento en que se llama require(), la llamada fallará y se lanzará un error.En otras palabras, require-by-string es no bloqueante: no espera implícitamente a que se cree un ModuleScript para ser creado.

Una vez que el objeto de devolución se crea por una llamada inicial de de un , las llamadas futuras de (del mismo lado del límite cliente-servidor) no ejecutarán el código nuevamente.En cambio, se proporcionará una referencia al objeto de devolución mismo creado por la llamada inicial require().Este comportamiento permite el intercambio de valores entre diferentes scripts, ya que varias llamadas require() de diferentes scripts se referirán al mismo objeto devuelto.Si el objeto devuelto es una tabla, todos los valores almacenados dentro de la tabla se comparten y son accesibles por cualquier script que requiera que ModuleScript.

Como se señaló anteriormente, el comportamiento de "compartir objetos" no cruza la frontera cliente-servidor.Esto significa que si un ModuleScript es accesible tanto para el cliente y servidor (como al ser colocado en ReplicatedStorage ) y require() es llamado tanto de un LocalScript como de un Script , el código en el ModuleScript se ejecutará dos veces, y el LocalScript recibirá un objeto de devolución distinto del que recibió el Script .

Tenga en cuenta también que si el ModuleScript el usuario quiere ejecutar se ha subido a Roblox (con el nombre de la instancia siendo MainModule ), se puede cargar usando la función require() en la ID del activo del ModuleScript , aunque solo en el servidor.

Parámetros

El ModuleScript que se ejecutará para recuperar el valor de devolución que proporciona o una referencia a uno (un camino de cadena o un ID de recurso).

Devuelve

Variant

Lo que se devolvió ModuleScript (normalmente una tabla o una función).

select

Devuelve todos los argumentos después del número de argumento index. Si es negativo, devolverá desde el final de la lista de argumentos.


print(select(2, "A", "B", "C")) --> B C
print(select(-1, "A", "B", "C")) --> C

Si el argumento index se establece en "#", el número de argumentos que se pasaron después de que se devuelve.


print(select("#", "A", "B", "C")) --> 3

Parámetros

index: Variant

El índice del argumento para devolver todos los argumentos después en args .Si está configurado a "#" , el número de argumentos que se pasaron después de que se devuelve.

args: Tuple

Un tuple de argumentos.

Devuelve

setmetatable

Establece el metatable para la tabla dada t a newMeta .Si newMeta es nil , se elimina el metatable de t .Por último, esta función devuelve la tabla t que se le pasó a ella.Si t ya tiene una tabla metálica cuyo __metatable metamétodo está establecer, llamar a esto en t levanta un error.


local meta = {__metatable = "protected"}
local t = {}
setmetatable(t, meta) -- Esto establece el metatable de t
-- Ahora tenemos una tabla, t, con un metatable. Si intentamos cambiarlo...
setmetatable(t, {}) --> Error: cannot change a protected metatable

Parámetros

La tabla para establecer el metatable de.

newMeta: Variant

Si nil , se elimina el metatable de la tabla dada t . De lo contrario, el metatable para establecer para la tabla dada t .

Devuelve

tonumber

Variant

Intentos de convertir el arg en un número con una base especificada para interpretar el valor en.Si no se puede convertir, esta función devuelve nil .

La base puede ser cualquier entero entre 2 y 36, incluido.En bases superiores a 10, la letra 'A' (en mayúscula o minúscula) representa 10, 'B' representa 11, y así sucesivamente, con 'Z' representando 35.En base 10 (el predeterminado), el número puede tener una parte decimal, así como una parte de exponente opcional.En otras bases, solo se aceptan enteros no firmados.

Si una cadena comienza con 0x y una base no se proporciona, la 0x se recorta y se supone que la base es de 16, o hexadecimal.


print(tonumber("1337")) --> 1337 (asume la base 10, decimal)
print(tonumber("1.25")) --> 1.25 (la base 10 puede tener porciones decimales)
print(tonumber("3e2")) --> 300 (la base 10 puede tener una parte de exponente, 3 × 10 ^ 2)
print(tonumber("25", 8)) --> 21 (base 8, octubre)
print(tonumber("0x100")) --> 256 (asume la base 16, hexadecimal)
print(tonumber("roblox")) --> nil (no levanta un error)
-- Consejo: utilice con Assert si desea números no convertibles para levantar un error
print(assert(tonumber("roblox"))) --> Error: assertion failed

Parámetros

arg: Variant

El objeto para convertir en un número.

base: number

La base numérica para convertir arg en.

Valor predeterminado: 10

Devuelve

Variant

tostring

Recibe un argumento de cualquier tipo y lo convierte a una cadena en un formato razonable.Para obtener un control completo de cómo se convierten los números, use string.format.Si el metatable de e tiene un __tostring metamétodo, se llamará con e como único argumento y devolverá el resultado.


local isRobloxCool = true
-- Convierte el booleano a una cadena y luego concatena:
print("Roblox is cool: " .. tostring(isRobloxCool)) --> Roblox is cool: true

Parámetros

e: Variant

El objeto que se convertirá en una cadena.

Devuelve

type

Devuelve el tipo de su único argumento, codificado como una cadena.Los resultados posibles de esta función son "nil" (una cadena, no el valor nil), "number" , "string" , "boolean" , "table" , "vector" , "function" , "thread" , "userdata" , y "buffer" .El buffer primitivo es una adición de Luau, no de Lua.

Parámetros

v: Variant

El objeto para devolver el tipo de.

Devuelve

unpack

Variant

Devuelve los elementos de la tabla dada.Por defecto, i es 1 y j es la longitud de list , definida por el operador de longitud.

Parámetros

list: table

La lista de elementos para desempaquetar.

El índice del primer elemento para desempaquinar.

Valor predeterminado: 1

El índice del último elemento para desempaquinar.

Valor predeterminado: #list

Devuelve

Variant

xpcall

Esta función es similar a pcall(), excepto que puedes establecer un nuevo manejador de errores.

xpcall() llama a la función f en modo protegido, usando err como manejador de errores, y pasa una lista de argumentos.Cualquier error dentro de f no se propaga; en cambio, xpcall() captura el error, llama la función err con el objeto de error original y devuelve un código de estado.Su primer resultado es el código de estado (un booleano), que es verdadero si la llamada tiene éxito sin errores.En este caso, xpcall() también devuelve todos los resultados de la llamada, después de este primer resultado.En caso de cualquier error, xpcall() devuelve false más el resultado de err .

A diferencia de pcall() , la función err preserva el rastro de pila de la función f , que se puede inspeccionar usando debug.info() o debug.traceback() .

Parámetros

La función que se llamará en modo protegido.

La función que se usará como manejo de error si xpcall captura un error.

args: Tuple

Devuelve

Variant

Propiedades

Una tabla que se comparte entre todos los scripts del mismo nivel de contexto.

_VERSION

Una variable global (no una función) que contiene una cadena que contiene la versión actual del intérprete.