pairs() vs. ipairs()
Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 3 di 54.
Ora che hai imparato sia pairs() sia ipairs(), è importante capire quando usare ciascuno. La scelta dipende interamente dalla struttura della tua tabella e da ciò che stai cercando di ottenere.
Usa ipairs() quando hai una tabella in stile lista con chiavi intere sequenziali a partire da 1. Elabora gli elementi in ordine e si ferma al primo valore nil, rendendolo perfetto per gli array in cui l’ordine è importante.
Usa pairs() quando la tua tabella ha chiavi stringa, tipi di chiave misti o quando devi accedere a tutte le voci indipendentemente dagli spazi vuoti. Scorre tutte le coppie chiave-valore nella tabella senza un ordine specifico.
Considera questa tabella mista:
local gameData = {
"Level 1",
"Level 2",
"Level 3",
currentLevel = 2,
playerName = "Hero"
}Se usi ipairs(), vedrai solo le tre stringhe di livello. Se usi pairs(), vedrai tutte e cinque le voci, comprese le chiavi stringa.
Sfida
FacileScrivi una funzione countSequentialItems che accetta una tabella data e restituisce il conteggio degli elementi con chiavi intere sequenziali.
Usa ipairs() per contare quanti elementi sono presenti nella parte sequenziale della tabella (a partire dall'indice 1 fino al primo nil). Questo ti aiuterà a capire la differenza tra ipairs() e pairs() quando lavori con tabelle miste.
Parametri:
data(tabella): una tabella mista contenente sia chiavi intere sequenziali sia chiavi stringa
Restituisce: il numero di elementi sequenziali (numero)
Provalo tu
function countSequentialItems(data)
-- Write code here
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