Recorrer tablas
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 17 de 80.
Has recorrido tablas de Lua muchas veces: Luau conserva exactamente los mismos bucles y añade tipos a las variables del bucle. Para los arreglos, ipairs recorre los elementos en orden, desde el índice 1 hasta #t, y puedes anotar ambas variables:
local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
print(`Day {day}: {temp}`)
endRecuerda que ipairs se detiene en el primer índice que falta: un hueco con nil en medio termina el bucle antes de tiempo. Esto rara vez es un problema con arreglos bien mantenidos, pero conviene saberlo.
Para los mapas, usa pairs, que visita cada par clave/valor, incluidas las claves de tipo string. En un mapa {[string]: number}, las variables del bucle son naturalmente de tipo string y number:
local ages: {[string]: number} = {Alice = 30, Bob = 25}
for name: string, age: number in pairs(ages) do
print(`{name} is {age}`)
endUna advertencia crucial: pairs visita las claves de la parte hash sin un orden garantizado. El orden puede variar entre ejecuciones. Cuando necesites una salida determinista (informes ordenados, pruebas), recopila las claves en un arreglo, aplica table.sort y luego recorre las claves ordenadas con ipairs e indexa el mapa.
Desafío
FácilImprime una semana de temperaturas y su total.
- Declara
local temps: {number} = {12, 15, 11, 14}ylocal total = 0. - Haz un bucle con
for day: number, temp: number in ipairs(temps) do, imprime`Day {day}: {temp}`y sumatempatotal. - Después del bucle, imprime
total.
Presiona Ejecutar código: la salida muestra Day 1: 12 a Day 4: 14, después 52.
Pruébalo tú mismo
-- 1) declara temps: {number} y total = 0
-- 2) recorre el bucle con day y temp tipados, imprime cada día y suma a total
-- 3) imprime el total
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