Menu
Coddy logo textTech

Costruzione di tabelle e unpack()

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

Lua offre una coppia complementare di tecniche per lavorare con più valori: costruzione di tabelle e unpack(). Sono particolarmente utili quando lavori con funzioni che richiedono una gestione flessibile degli argomenti.Puoi acquisire più valori in una tabella simile a una lista usando la sintassi del costruttore di tabelle con le parentesi graffe. In questo modo raccogli tutti i valori in un'unica struttura tabellare.
local args = {10, 20, 30}
print(args[1])  -- Output: 10
print(#args)    -- Output: 3
La funzione unpack() fa l’opposto. Prende una tabella in formato lista e restituisce tutti i suoi elementi come valori separati. Questo ti permette di passare il contenuto della tabella come argomenti individuali a una funzione.Importante: Sebbene le versioni più recenti di Lua (5.2+) abbiano spostato questa funzione in table.unpack(), questo ambiente esegue Lua 5.1, quindi devi usare la funzione globale unpack().
local numbers = {5, 10, 15}
print(unpack(numbers))  -- Output: 5    10    15
Queste tecniche funzionano insieme senza problemi. Puoi raccogliere i valori in una tabella, manipolare la tabella e poi scomporla nuovamente in singoli valori.
challenge icon

Sfida

Facile

Scrivi una funzione forwardArguments che accetta tre numeri a, b e c e restituisce la loro somma utilizzando la creazione di una tabella e unpack().

Crea una tabella contenente i tre argomenti usando la sintassi {a, b, c}, quindi spacchettali e passali a un'altra funzione che calcola la loro somma.

Nota: Usa la funzione globale unpack() invece di table.unpack() per garantire la compatibilità con questo ambiente.

Logica:

  • Usa {a, b, c} per creare una tabella contenente tutti e tre gli argomenti
  • Crea una funzione separata chiamata sum che accetta tre parametri e ne restituisce la somma
  • Usa unpack() per passare i valori della tabella alla funzione sum
  • Restituisci il risultato della funzione sum

Parametri:

  • a (numero): Primo numero
  • b (numero): Secondo numero
  • c (numero): Terzo numero

Restituisce: La somma di tutti e tre i numeri (numero)

Provalo tu

function forwardArguments(a, b, c)
    -- Crea una funzione separata che calcoli la somma

    -- Crea una tabella che contenga tutti e tre gli argomenti

    -- Estrai i valori dalla tabella e passali alla funzione che calcola la somma
    -- Suggerimento: usa la funzione globale 'unpack' per espandere gli argomenti della tabella

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