Menu
Coddy logo textTech

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 elemento

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

challenge icon

Desafío

Fácil

Crea un array con tipo queue: {string} inicializado con "save" y "load". Después:

  1. añade "<code>quit" al final con table.insert
  2. inserta "<code>help" en la posición 1
  3. elimina el último comando con table.remove, guardando el valor devuelto

Finalmente imprime, cada uno en su propia línea:

  1. el comando eliminado
  2. cuántos comandos quedan
  3. el primer comando en la cola
  4. 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
quiz iconPonte a prueba

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

Practica por tu cuenta: Compilador de Lua online