Menu
Coddy logo textTech

Iterando com ipairs()

Parte da seção Lógica e Fluxo do Journey de Lua da Coddy. Lição 2 de 54.

Embora pairs() funcione com qualquer estrutura de tabela, Lua fornece uma função especializada chamada ipairs(), projetada especificamente para tabelas no estilo de lista. Essa função itera pelas tabelas em ordem sequencial, começando pelo índice 1 e continuando até encontrar um valor nil.

A sintaxe de ipairs() é semelhante à de pairs():

for index, value in ipairs(myList) do
    -- use index e value aqui
end

Aqui está um exemplo com uma lista de itens de missão:

local questItems = {"Map", "Compass", "Torch", "Rope"}

for i, item in ipairs(questItems) do
    print(i .. ". " .. item)
end

Saída:

1. Map
2. Compass
3. Torch
4. Rope

A principal diferença em relação a pairs() é que ipairs() para imediatamente quando encontra um valor nil, mesmo que haja mais elementos depois dele.

challenge icon

Desafio

Fácil

Escreva uma função listTasks que receba uma tabela tasks e retorne uma string formatada listando todas as tarefas com seus números de posição.

Use ipairs() para iterar pelas tarefas em ordem sequencial e construir uma string em que cada linha mostre o número da tarefa seguido pelo nome da tarefa no formato number. task. Cada tarefa deve estar em uma linha separada.

Parâmetros:

  • tasks (tabela): Uma tabela no estilo lista contendo nomes de tarefas como strings

Retorna: Uma string com cada tarefa numerada em uma linha separada. Formato: 

1. task1
2. task2
3. task3

Experimente você mesmo

function listTasks(tasks)
    -- Escreva o código aqui
end
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 Lógica e Fluxo

Pratique por conta própria: Compilador de Lua online