Menu
Coddy logo textTech

Iterare con pairs()

Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 1 di 54.

Quando lavori con tabelle in stile dizionario in Lua, spesso devi accedere a ogni coppia chiave-valore memorizzata al loro interno. La funzione pairs() lo rende possibile permettendoti di scorrere tutte le voci di una tabella, indipendentemente dal tipo delle chiavi.La sintassi per usare pairs() in un ciclo for è simile a questa:
for key, value in pairs(myTable) do
    -- usa key e value qui
end
Durante ogni iterazione del ciclo, pairs() fornisce sia la chiave sia il valore corrispondente. Questo significa che puoi accedere a entrambe le informazioni e lavorarci contemporaneamente.Ecco un esempio pratico con l'inventario di un giocatore:
local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end
Questo codice stamperà il nome e la quantità di ogni elemento. La funzione pairs() funziona con qualsiasi tipo di chiave, incluse stringhe, numeri o persino altre tabelle.Lavorare con le stringheIn Lua, puoi unire le stringhe usando l'operatore di concatenazione, che consiste in due punti (..). Per esempio, "Hello" .. " " .. "World" produce "Hello World".Se devi formattare il testo su più righe, puoi usare il carattere di escape per la nuova riga, "\n". Quando Lua incontra "\n" all'interno di una stringa, lo interpreta come un comando per passare alla riga successiva.Ad esempio, print("Line 1\nLine 2") produrrà:
Line 1
Line 2
challenge icon

Sfida

Facile

Scrivi una funzione printInventory che accetta una tabella inventory e restituisce una stringa formattata che elenca tutti gli oggetti e le relative quantità.

Usa pairs() per scorrere la tabella dell'inventario e creare una stringa in cui ogni riga mostra il nome di un oggetto seguito dalla sua quantità nel formato item: quantity. Ogni oggetto deve trovarsi su una riga separata.

Per mettere ogni oggetto su una riga a sé, usa il carattere di nuova riga "\n" tra gli elementi. Per esempio, "apple: 5\nbanana: 3" verrà visualizzato su due righe separate. Fai attenzione a non aggiungere un "\n" iniziale prima del primo oggetto: aggiungilo solo tra gli elementi.

Parametri:

  • inventory (table): una tabella in stile dizionario in cui le chiavi sono i nomi degli oggetti (stringhe) e i valori sono le quantità (numeri)

Restituisce: una stringa con ogni oggetto e la relativa quantità su una riga separata, separati da "\n". Esempio di output per {apple=5, banana=3}:
apple: 5
banana: 3

Provalo tu

function printInventory(inventory)
    -- Per formattare l'output, puoi concatenare le stringhe usando l'operatore '..'.
    -- Per aggiungere una nuova riga, usa il carattere speciale '\n'.
    -- Potresti aver bisogno di un modo per tenere traccia se stai aggiungendo il primo elemento o uno successivo
    -- per decidere se aggiungere un'interruzione di riga prima dell'elemento.
    
    -- Scrivi il codice qui
end
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 Logica e flusso

Esercitati da solo: Compilatore Lua online