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 valorEl 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.
Desafío
FácilMantén un mapa tipado de útiles escolares.
- Declara
local stock: {[string]: number} = {pens = 40, rulers = 15}. - Añade
stock["erasers"] = 25y cambiarulersa10. - Imprime las existencias de
pens,rulers,erasersyglue, 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
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 Luau4Trabajar con funciones
Tipado de parámetros y valores de retornoTipado de funciones anónimasFunciones que no devuelven nadaParámetros opcionalesValores predeterminados de parámetrosValores predeterminados para booleanosFunciones variádicasDefinir tipos de funcionesRepaso: funciones tipadas7Proyecto: Gestor de tareas tipado
Proyecto: La estructura de una tareaFunción para añadir una tarea2Tipos fundamentales
Número, cadena y booleanoEl tipo 'any': una salida de emergenciaEl tipo 'unknown'Tipos nulos y opcionalesLa inferencia de tipos en acciónAnotaciones de tipo explícitasRepaso: práctica de tipos fundamentales5Alias, 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 mapas
Arrays tipadosAgregar y leer elementos¿Qué es un tipo mapa?Declarar y acceder a mapasRecorrer tablasTablas de formas mixtasLeer una cuadrículaConstruir una cuadrículatable.unpackRepaso: arrays y mapasPractica por tu cuenta: Compilador de Luau online