Menu
Coddy logo textTech

Iterare con ipairs()

Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 2 di 54.

Sebbene pairs() funzioni con qualsiasi struttura di tabella, Lua fornisce una funzione specializzata chiamata ipairs(), progettata specificamente per le tabelle in stile lista. Questa funzione scorre le tabelle in ordine sequenziale, iniziando dall’indice 1 e proseguendo fino a incontrare un valore nil.

La sintassi di ipairs() è simile a quella di pairs():

for index, value in ipairs(myList) do
    -- usa index e value qui
end

Ecco un esempio con un elenco di oggetti della missione:

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

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

Output:

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

La differenza principale rispetto a pairs() è che ipairs() si interrompe immediatamente quando trova un valore nil, anche se ci sono altri elementi dopo di esso.

challenge icon

Sfida

Facile

Scrivi una funzione listTasks che accetta una tabella tasks e restituisce una stringa formattata che elenca tutte le attività con i rispettivi numeri di posizione.

Usa ipairs() per iterare sulle attività in ordine sequenziale e creare una stringa in cui ogni riga mostra il numero dell'attività seguito dal nome dell'attività nel formato number. task. Ogni attività deve trovarsi su una riga separata.

Parametri:

  • tasks (table): Una tabella in stile lista contenente i nomi delle attività come stringhe

Restituisce: Una stringa con ogni attività numerata su una riga separata. Formato: 

1. task1
2. task2
3. task3

Provalo tu

function listTasks(tasks)
    -- Scrivi il codice qui
end
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Lua online