Menu
CoddyTech

Declarar y acceder a mapas

Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 16 de 80.

Declarar un mapa tipado se parece a los constructores de tablas que siempre has escrito: la anotación simplemente fija los tipos de las claves y los valores:

local stock: {[string]: number} = {apples = 12, bananas = 5}

La lectura y la escritura usan la indexación que ya conoces. Para las claves que son identificadores válidos, stock.apples y stock["apples"] acceden a la misma entrada; la notación con corchetes también admite claves con espacios o claves almacenadas en variables:

stock["cherries"] = 20   -- añade una entrada nueva
stock.bananas = 8        -- actualiza una entrada existente
print(stock["apples"])  -- 12
print(stock["plums"])   -- nil: nunca se le asignó un valor

El verificador de tipos comprueba cada escritura: stock["apples"] = "many" se marca como error porque "many" no es un número, y usar un número como clave también se marca como error porque las claves deben ser cadenas.

Para eliminar una entrada, asigna nil a su clave: stock["bananas"] = nil la elimina por completo, y las lecturas posteriores devuelven nil. No hay una función de eliminación aparte; este es el modismo estándar de Lua y sigue pasando la comprobación de tipos en un mapa.

challenge icon

Desafío

Fácil

Mantén un mapa tipado de útiles escolares.

  1. Declara local stock: {[string]: number} = {pens = 40, rulers = 15}.
  2. Añade stock["erasers"] = 25 y cambia rulers a 10.
  3. Imprime las existencias de pens, rulers, erasers y glue, una por línea.

Pulsa Ejecutar código: el resultado muestra 40, 10, 25 y nil.

Pruébalo tú mismo

-- 1) declara stock: {[string]: number} con pens = 40, rulers = 15
-- 2) añade erasers = 25, cambia rulers a 10
-- 3) imprime pens, rulers, erasers y luego glue

Todas las lecciones de Introducción a Luau

Practica por tu cuenta: Compilador de Luau online