Menu
Coddy logo textTech

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 de 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}`)
end

Lembre-se de que ipairs para no primeiro índice ausente: um intervalo nil no meio encerra o loop mais cedo. Isso raramente é um problema com arrays bem mantidos, mas é bom saber.

Para maps, use pairs, que visita cada par de chave/valor: incluindo chaves de string. 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}`)
end

Uma ressalva crucial: pairs visita as chaves da parte de hash em nenhuma ordem garantida. Isso pode variar entre as execuções. Quando você precisa de uma saída determinística (relatórios ordenados, testes), reúna as chaves em um array, aplique table.sort a ele e, em seguida, percorra as chaves ordenadas com ipairs e indexe o map.

challenge icon

Desafio

Fácil

Crie um array tipado temps: {number} inicializado com 18, 21, 19 e 24.

Percorra-o 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) declare 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
quiz iconTeste seus conhecimentos

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

Pratique por conta própria: Compilador de Lua online