Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

ipairs

Estava testando o código do exercício, só que ele considera como errada a alternativa escrita como pairs ao invés ipairs, mas no terminal estava imprimindo corretamente em ambos os casos.

idades = { 20, 42, 54, 57, 11, 30, 18 }

for i,idade in ipairs(idades) do 
    print(i, idades[i])
end
1 resposta
solução!

Olá Sérgio,

Realmente nesse caso não vai fazer diferença utilizar o pairs() ou o ipairs(). Agradecemos o aviso e já vou repassar a informação para corrigirmos o exercício.

Só para ter um exemplo, para o exemplo abaixo teríamos diferença entre os dois métodos:

idades = {[1]=20,[3]=42,[5]=54}

Ao declarar a tabela dessa forma, estamos atribuindo um índice específico para cada valor. O ipairs() vai imprimir os valores em ordem mas vai imprimir os índices como 1, 2, 3. Já o pairs vai imprimir os índices corretos conforme especificamos.

O pairs também é capaz de iterar em indíces não numéricos para o caso de dicionários com chave e valor:

idades = {["ana"]=20,["joao"]=42,["luciano"]=54}