Iterar tablas
Parte de la sección Introducción a Luau del Journey de Lua de Coddy — lección 17 de 73.
Has recorrido tablas de Lua muchísimas veces — Luau mantiene exactamente los mismos bucles y añade tipos a las variables de control del bucle. Para arrays, ipairs recorre los elementos en orden, del índice 1 a #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 falte — un hueco nil en medio termina el bucle antes de tiempo. Rara vez es un problema con arrays bien mantenidos, pero vale la pena saberlo.
Para mapas, usa pairs, que visita cada par clave/valor — claves de tipo string incluidas. En un mapa de tipo {[string]: number}, las variables del bucle son de manera natural un string y un 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 en un orden no garantizado — puede diferir entre ejecuciones. Cuando necesites un resultado determinista (informes ordenados, pruebas), recolecta las claves en un array, ordénalo con table.sort, después recorre las claves ordenadas con ipairs e indexa el mapa.
Desafío
FácilCrea un array con tipo temps: {number} inicializado con 18, 21, 19 y 24.
Haz un loop sobre él con ipairs, anotando ambas variables del loop (day: number, temp: number). Para cada elemento imprime exactamente:
Day 1: 18(usando interpolación de cadenas con comillas invertidas), y añade cada temperatura a un total acumulado.
Después del loop, imprime el total en su propia línea.
Pruébalo tú mismo
-- Escribe código aquí
-- 1) declara temps: {number} = {18, 21, 19, 24}
-- 2) for day: number, temp: number in ipairs(temps) do ... end
-- imprimiendo `Day {day}: {temp}` y sumando en total
-- 3) imprime el total después del bucle
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 Maps