Añadir y leer elementos
Parte de la sección Introducción a Luau del Journey de Lua de Coddy — lección 14 de 73.
Ya aumentas y reduces el tamaño de las tablas de Lua con table.insert y table.remove; ambas funcionan exactamente igual en arrays con tipo. La diferencia es que Luau ahora comprueba lo que insertas: añadir un string en un array de tipo {number} se marca mientras escribes, en lugar de que lo descubra un jugador confundido en tiempo de ejecución.
local queue: {string} = {"save", "load"}
table.insert(queue, "quit") -- añade al final
table.insert(queue, 1, "help") -- inserta en la posición 1, desplazando el resto
local last = table.remove(queue) -- elimina Y devuelve el último elementotable.remove(t) saca el último elemento y te lo devuelve; table.remove(t, 1) elimina el primero y desplaza todo hacia abajo. Como el array tiene el tipo {string}, Luau sabe que el valor devuelto es un string.
Leer valores es tan flexible como en Lua estándar: un índice que no contiene nada — queue[0], queue[-1] o cualquier otro más allá de #queue — se evalúa silenciosamente como nil. No se genera ningún error, así que comprueba si es nil antes de usar un valor que no estés seguro de que exista.
Una herramienta más para tu repertorio: table.freeze(t) hace que una tabla sea de solo lectura en tiempo de ejecución — cualquier intento posterior de modificarla generará un error. Es la solución de Luau para datos constantes (configuración, listas de niveles fijas) que nunca deben cambiar después de su creación.
Desafío
FácilCrea un array con tipo queue: {string} inicializado con "save" y "load". Después:
- agrega al final
"quit"contable.insert - inserta
"help"en la posición 1 - elimina el último comando con
table.remove, guardando el valor devuelto
Finalmente imprime, cada uno en su propia línea:
- el comando eliminado
- cuántos comandos quedan
- el primer comando de la cola
queue[10]— una casilla que no contiene nada
Pruébalo tú mismo
-- Escribe código aquí
-- 1) declara cola: {string} con "save" y "load"
-- 2) añade "quit", inserta "help" en la posición 1
-- 3) elimina el último comando, luego imprime los cuatro valores
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Introducción a Luau
1Primeros pasos con Luau
¿Qué es Luau?¿Por qué usar Luau?Tu primer código en LuauComprobación de tipos y modos de errorRecapitulacion: Introducción a Luau4Trabajando con Funciones
Tipado de Parámetros y Valores de RetornoTipado de Funciones AnónimasFunciones que no Retornan NadaParámetros OpcionalesValores por Defecto en ParámetrosFunciones VariádicasDefinición de Tipos de FuncionesRecapitulaciones: Funciones Tipadas2Tipos principales
Tipos básicos: num, str, boolEl tipo 'any': Vía de escapeEl tipo 'unknown'Tipos nulos y opcionalesInferencia de tipos en acciónAnotaciones explícitas de tiposResumen: Práctica de tipos principales5Alias, Uniones e Intersecciones
Alias de tipos para primitivosTipos de uniónTrabajando con tipos de uniónTipos literalesTipos de intersecciónCombinando alias de tiposResumen: Combinaciones avanzadas de tipos3Tablas tipadas: Arrays y Maps
Arrays tipadosAñadir y leer elementos¿Qué es un tipo Map?Declarar y acceder a MapsIterar tablasTablas de forma mixtaArrays tipados multidimensionalestable.unpack y VarargsRecapitulaciones: Arrays y Maps