Iterando Sobre Tabelas
Parte da seção Introdução ao Luau do Journey de Lua da Coddy — lição 17 de 73.
Você já percorreu tabelas em Lua muitas vezes — o Luau mantém exatamente os mesmos loops e adiciona tipos às variáveis do loop. Para arrays, ipairs percorre os elementos em ordem, do índice 1 até #t, e você pode anotar ambas as variáveis:
local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
print(`Day {day}: {temp}`)
endLembre-se de que ipairs para no primeiro índice ausente — um espaço nil no meio encerra o loop precocemente. Isso raramente é um problema com arrays bem mantidos, mas vale a pena saber.
Para maps, use pairs, que visita cada par chave/valor — incluindo chaves de texto. Em um map {[string]: number}, as variáveis do loop são naturalmente uma string e um number:
local ages: {[string]: number} = {Alice = 30, Bob = 25}
for name: string, age: number in pairs(ages) do
print(`{name} is {age}`)
endUm aviso crucial: pairs visita as chaves da parte hash sem nenhuma ordem garantida — isso pode diferir entre execuções. Quando você precisar de uma saída determinística (relatórios ordenados, testes), colete as chaves em um array, ordene com table.sort, depois percorra as chaves ordenadas com ipairs e acesse o map pelo índice.
Desafio
FácilCrie um array tipado temps: {number} inicializado com 18, 21, 19 e 24.
Faça um loop sobre ele com ipairs, anotando ambas as variáveis do loop (day: number, temp: number). Para cada elemento, imprima exatamente:
Day 1: 18(usando interpolação de string com crases) e adicione cada temperatura a um total acumulado.
Após o loop, imprima o total em sua própria linha.
Experimente você mesmo
-- Escreva o código aqui
-- 1) declarar temps: {number} = {18, 21, 19, 24}
-- 2) for day: number, temp: number in ipairs(temps) do ... end
-- imprimindo `Day {day}: {temp}` e somando no total
-- 3) imprima o total após o loop
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Introdução ao Luau
1Começando com o Luau
O que é Luau?Por que usar Luau?Seu primeiro código em LuauVerificação de tipos e modos de erroRecapitulando: Introdução ao Luau4Trabalhando com Funções
Tipando Parâmetros e Valores de RetornoTipando Funções AnônimasFunções que Não Retornam NadaParâmetros OpcionaisValores Padrão para ParâmetrosFunções VariádicasDefinindo Tipos de FunçõesRecapitulação: Funções Tipadas2Tipos Fundamentais
Tipos Básicos: num, str, boolO Tipo 'any': Escape HatchO Tipo 'unknown'Tipos Nil e OpcionaisInferência de Tipos na PráticaAnotações Explícitas de TiposReciclagem: Prática de Tipos Fundamentais5Aliases, Uniões, Interseções
Aliases de Tipos para PrimitivosTipos de UniãoTrabalhando com Tipos de UniãoTipos LiteraisTipos de InterseçãoCombinando Aliases de TiposRecapitulando: Combinações Avançadas de Tipos3Tabelas Tipadas: Arrays e Maps
Arrays TipadosAdicionando e Lendo ElementosO que é um Tipo Map?Declarando e Acessando MapsIterando Sobre TabelasTabelas de Formato MistoArrays Tipados Multidimensionaistable.unpack e VarargsRecapitulando: Arrays e Maps