Iterare sulle tabelle
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 17 di 80.
Hai eseguito cicli sulle tabelle Lua molte volte: Luau mantiene gli stessi identici cicli e aggiunge i tipi alle variabili del ciclo. Per gli array, ipairs scorre gli elementi in ordine, dall’indice 1 a #t, e puoi annotare entrambe le variabili:
local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
print(`Day {day}: {temp}`)
endRicorda che ipairs si ferma al primo indice mancante: un buco nil nel mezzo interrompe anticipatamente il ciclo. Con array ben mantenuti, raramente è un problema, ma è bene saperlo.
Per le mappe, usa pairs, che visita ogni coppia chiave/valore, incluse le chiavi stringa. In una mappa {[string]: number}, le variabili del ciclo sono naturalmente una string e un number:
local ages: {[string]: number} = {Alice = 30, Bob = 25}
for name: string, age: number in pairs(ages) do
print(`{name} is {age}`)
endUn’avvertenza fondamentale: pairs visita le chiavi della parte hash in un ordine non garantito. L’ordine può variare da un’esecuzione all’altra. Quando hai bisogno di un risultato deterministico (rapporti ordinati, test), raccogli le chiavi in un array, applica table.sort, poi esegui un ciclo sulle chiavi ordinate con ipairs e accedi alla mappa tramite indice.
Sfida
FacileStampa una settimana di temperature e il loro totale.
- Dichiara
local temps: {number} = {12, 15, 11, 14}elocal total = 0. - Usa il ciclo
for day: number, temp: number in ipairs(temps) do, stampa`Day {day}: {temp}`e aggiungitempatotal. - Dopo il ciclo, stampa
total.
Premi Esegui codice: l'output mostra Day 1: 12 a Day 4: 14, poi 52.
Provalo tu
-- 1) dichiara temps: {number} e total = 0
-- 2) esegui un ciclo con day e temp tipizzati, stampa ogni day e aggiungi a total
-- 3) stampa il totale
Tutte le lezioni di Introduzione a Luau
1Per iniziare con Luau
Che cos'è Luau?Perché usare Luau?Il tuo primo codice LuauVerifica dei tipi e modalità di erroreRiepilogo: introduzione a Luau4Lavorare con le funzioni
Tipizzare parametri e valori restituitiTipizzare le funzioni anonimeFunzioni che non restituiscono nullaParametri opzionaliValori predefiniti dei parametriValori predefiniti per i booleaniFunzioni variadicheDefinire i tipi di funzioneRiepilogo: funzioni tipizzate7Progetto: Gestore di attività tipizzato
Progetto: La struttura di un'attivitàFunzione per aggiungere un'attività2Tipi fondamentali
Numero, stringa e booleanoIl tipo 'any': una via di fugaIl tipo 'unknown'Tipi nil e opzionaliL’inferenza dei tipi in praticaAnnotazioni esplicite dei tipiRipasso: esercizi sui tipi fondamentali5Alias, unioni e intersezioni
Alias di tipo per i primitiviTipi unioneLavorare con i tipi unioneTipi letteraliTipi intersezioneCombinare gli alias di tipoRiepilogo: combinazioni avanzate di tipi3Tabelle tipizzate: array e mappe
Array tipizzatiAggiungere e leggere elementiChe cos'è un tipo map?Dichiarare e accedere alle mappeIterare sulle tabelleTabelle con forme misteLeggere una grigliaCreare una grigliatable.unpackRiepilogo: array e mappeEsercitati da solo: Compilatore Luau online