Menu
Coddy logo textTech

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}`)
end

Ricorda 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}`)
end

Un'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.

challenge icon

Sfida

Facile

Crea 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
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 Introduzione a Luau

Esercitati da solo: Compilatore Luau online