Iterare sulle tabelle
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 17 di 73.
Hai iterato sulle tabelle Lua molte volte: Luau mantiene esattamente gli stessi cicli e aggiunge i tipi alle variabili del ciclo. Per gli array, ipairs percorre 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 termina il ciclo in anticipo. Raramente è un problema con array ben gestiti, ma è utile 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. Può variare da un'esecuzione all'altra. Quando ti serve un risultato deterministico (report ordinati, test), raccogli le chiavi in un array, applica table.sort, poi itera sulle chiavi ordinate con ipairs e indicizza la mappa.
Sfida
FacileCrea un array tipizzato temps: {number} inizializzato con 18, 21, 19 e 24.
Scorri l’array con ipairs, annotando entrambe le variabili del ciclo (day: number, temp: number). Per ogni elemento stampa esattamente:
Day 1: 18(usando l’interpolazione di stringhe con i backtick) e aggiungi ogni temperatura a un totale progressivo.
Al termine del ciclo, stampa il totale su una riga a sé.
Provalo tu
-- Scrivi il codice qui
-- 1) dichiara temps: {number} = {18, 21, 19, 24}
-- 2) for day: number, temp: number in ipairs(temps) do ... end
-- stampando `Day {day}: {temp}` e sommando in total
-- 3) stampa il totale dopo il ciclo
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
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 i parametri e i valori restituitiTipizzare le funzioni anonimeFunzioni che non restituiscono nullaParametri opzionaliValori predefiniti dei parametriFunzioni variadicheDefinire i tipi di funzioneRiepilogo: funzioni tipizzate2Tipi fondamentali
Tipi di base: num, str, boolIl tipo 'any': una via di fugaIl tipo 'unknown'Nil e tipi opzionaliL'inferenza dei tipi in azioneAnnotazioni 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 strutture misteArray tipizzati multidimensionalitable.unpack e argomenti variabiliRiepilogo: array e mappeEsercitati da solo: Compilatore Luau online