Tabellenkonstruktion & unpack()
Teil des Abschnitts Logik und Programmablauf der Lua-Journey von Coddy. Lektion 6 von 54.
unpack(). Diese sind besonders nützlich bei der Arbeit mit Funktionen, die eine flexible Argumentverarbeitung benötigen.Du kannst mehrere Werte mithilfe der Tabellenkonstruktor-Syntax mit geschweiften Klammern in einer Tabelle im Listenstil erfassen. Dadurch werden alle Werte in einer einzigen Tabellenstruktur gesammelt.local args = {10, 20, 30}
print(args[1]) -- Ausgabe: 10
print(#args) -- Ausgabe: 3unpack() bewirkt das Gegenteil. Sie nimmt eine Tabelle im Listenstil und gibt alle ihre Elemente als separate Werte zurück. So kannst du Tabelleninhalte als einzelne Argumente an eine Funktion übergeben.Wichtig: Obwohl neuere Versionen von Lua (5.2+) diese Funktion nach table.unpack() verschoben haben, läuft diese Umgebung mit Lua 5.1, daher musst du die globale Funktion unpack() verwenden.local numbers = {5, 10, 15}
print(unpack(numbers)) -- Ausgabe: 5 10 15Aufgabe
EinfachSchreibe eine Funktion forwardArguments, die drei Zahlen a, b und c entgegennimmt und ihre Summe mithilfe der Tabellenerstellung und unpack() zurückgibt.
Erstelle mithilfe der Syntax {a, b, c} eine Tabelle mit den drei Argumenten, entpacke sie anschließend und übergib sie an eine andere Funktion, die ihre Summe berechnet.
Hinweis: Verwende die globale Funktion unpack() anstelle von table.unpack(), um die Kompatibilität mit dieser Umgebung sicherzustellen.
Logik:
- Verwende
{a, b, c}, um eine Tabelle mit allen drei Argumenten zu erstellen - Erstelle eine separate Funktion namens
sum, die drei Parameter entgegennimmt und ihre Summe zurückgibt - Verwende
unpack(), um die Tabellenwerte an die Funktionsumzu übergeben - Gib das Ergebnis der Funktion
sumzurück
Parameter:
a(Zahl): Erste Zahlb(Zahl): Zweite Zahlc(Zahl): Dritte Zahl
Rückgabewert: Die Summe aller drei Zahlen (Zahl)
Probier es selbst
function forwardArguments(a, b, c)
-- Erstelle eine separate Funktion, die die Summe berechnet
-- Erstelle eine Tabelle, die alle drei Argumente enthält
-- Entpacke die Tabelle und übergib die Werte an die Summenfunktion
-- Hinweis: Verwende die globale Funktion 'unpack', um die Tabellenargumente zu entpacken
endDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik und Programmablauf
1Fortgeschrittene Tabelleniteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen2Weitere Funktionen der Tabellenbibliothek
table.concat()Tabellenkonstruktion & unpack()table.sort()Eigene Sortierung mit FunktionenRückblick – Highscore-TabelleÜbe selbstständig: Online-Lua-Compiler