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 a un array de tipo {number} se señala mientras escribes, en lugar de que un jugador confundido lo descubra 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 es tan permisivo como en Lua puro: un índice que no contiene nada — queue[0], queue[-1] o cualquier cosa más allá de #queue — se evalúa silenciosamente a nil. No se lanza 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 solo de lectura en tiempo de ejecución; cualquier intento posterior de modificarla lanzará un error. Es la solución de Luau para datos constantes (configuración, listas fijas de niveles) que nunca deben cambiar tras su creación.
Desafío
FácilCrea un array con tipo queue: {string} inicializado con "save" y "load". Después:
- añade
"<code>quit" al final contable.insert - inserta
"<code>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 en la cola
queue[10]— una casilla que no contiene nada
Pruébalo tú mismo
-- Escribe código aquí
-- 1) declara queue: {string} con "save" y "load"
-- 2) añade el texto exacto de las instrucciones, inserta el texto exacto de las instrucciones 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 MapsPractica por tu cuenta: Compilador de Lua online