Costruzione di tabelle e unpack()
Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 6 di 54.
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: 3unpack() 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 15Sfida
FacileScrivi 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
sumche accetta tre parametri e ne restituisce la somma - Usa
unpack()per passare i valori della tabella alla funzionesum - Restituisci il risultato della funzione
sum
Parametri:
a(numero): Primo numerob(numero): Secondo numeroc(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
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