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
endEcco 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)
endOutput:
1. Map
2. Compass
3. Torch
4. RopeLa differenza fondamentale rispetto a pairs() è che ipairs() si interrompe immediatamente quando trova un valore nil, anche se ci sono altri elementi dopo di esso.
Sfida
FacileScrivi 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. task3Provalo tu
function listTasks(tasks)
-- Scrivi il codice qui
end
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Iterazione avanzata delle tabelle
Iterare con pairs()Iterare con ipairs()pairs() vs. ipairs()Riepilogo - Scheda del personaggio2Altre funzioni della libreria table
table.concat()Costruzione di tabelle e unpack()table.sort()Ordinamento personalizzato con funzioniRiepilogo - Tabellone dei punteggi più altiEsercitati da solo: Compilatore Lua online