Iterare con pairs()
Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 1 di 54.
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
endpairs() 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)
endpairs() 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 2Sfida
FacileScrivi 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: 5banana: 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
endQuesta 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