Menu
CoddyTech

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 offre una funzione specializzata chiamata ipairs(), progettata specificamente per le tabelle di tipo lista. Questa funzione itera attraverso le tabelle in ordine sequenziale, partendo dall'indice 1 e continuando finché non incontra 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 fondamentale 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 con l'elenco di tutte le attività e i relativi numeri di posizione.

Usa ipairs() per scorrere le 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 formato lista contenente i nomi delle attività come stringhe

Valore restituito: 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