Luau globals
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Resumen
Funciones
Lanza un error si el proporcionado value resuelve a false o nil .
Detiene la ejecución del hilo y lanza un error.
Devuelve el tamaño total del heap de memoria en kilobytes.
Devuelve el metatable de la tabla dada.
Devuelve una función iteradora y la tabla para su uso en un bucle for.
Devuelve el código proporcionado como una función que se puede ejecutar.
Crea un vacío userdata , con la opción de que tenga una tabla metálica.
Una función iteradora para usar en bucles.
Devuelve una función iteradora y la tabla proporcionada para su uso en un bucle for .
Ejecuta la función proporcionada y captura cualquier error que lance, devolviendo el éxito de la función y sus resultados.
Imprime todos los valores proporcionados al Salida.
Devuelve si v1 es igual a v2 , omitiendo sus metamétodos.
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.
Establece el valor real de table[index] , omitiendo cualquier metamétodo.
Devuelve el valor que fue devuelto por el ModuleScript dado, ejecutándolo si aún no se ha ejecutado.
Devuelve todos los argumentos después del índice dado.
Establece el metatable de la tabla dada.
Devuelve el valor proporcionado convertido a un número, o nil si es imposible.
Devuelve el valor proporcionado convertido a una cadena, o nil si es imposible.
Retorna el tipo básico del objeto proporcionado.
Devuelve todos los elementos de la lista dada como un tupla.
Similar a pcall() excepto que usa un manejador de errores personalizado.
Funciones
assert
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 * 4assert(product == 360, "Oh dear, multiplication is broken")-- The line above does nothing, because 90 times 4 is 360
Parámetros
El valor que se afirmará contra.
El texto que se mostrará en el error si la afirmación falla.
Devuelve
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
El mensaje de error para mostrar.
El nivel de información que debe imprimirse. Se prefiere 1.
Devuelve
getmetatable
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
El objeto para recuperar el metatable de.
Devuelve
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) doprint(index, fruit) --> 1 manzanas, 2 naranjas, 3 kiwi, etc...end
Parámetros
Una tabla cuyos elementos se deben iterar.
loadstring
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
Devuelve
next
Devuelve el primer par de clave/valor en el matriz/lista.Si se especificó un argumento lastKey entonces devuelve el siguiente elemento en el array basado en la clave que se proporcionó.No se especifica el orden en que se enumeran los índices, incluso para los índices numéricos.Para recorrer una tabla en orden numérico, utilice un bucle numérico o ipairs .
El comportamiento de siguiente no está definido si, durante la exploración, asignas cualquier valor a un campo no existente en la tabla.Sin embargo, puedes modificar campos existentes.En particular, puedes borrar campos existentes.
Parámetros
El array para ser recorrido.
La última clave que se recuperó previamente de una llamada a siguiente.
Devuelve
pairs
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) doprint(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
Devuelve
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
Cualquier número de argumentos a ser emitidos.
Devuelve
rawget
Obtiene el valor real de table[index] , sin invocar ningún metamétodo.
Parámetros
La tabla para ser referenciada.
El índice para obtener de t .
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.
El índice para establecer en t a un especificado value . Debe ser diferente de nil .
El valor que se debe establecer a un especificado index en la tabla t.
Devuelve
require
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.Parentrequire(script.Parent.ModuleScript)require("./ModuleScript")-- "../" es equivalente a script.Parent.Parentrequire(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
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 Cprint(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
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.
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.
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
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 errorprint(assert(tonumber("roblox"))) --> Error: assertion failed
Parámetros
El objeto para convertir en un número.
La base numérica para convertir arg en.
Devuelve
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
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
El objeto para devolver el tipo de.
Devuelve
unpack
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
Devuelve
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
Devuelve
Propiedades
_G
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.