Tabellenkonstruktion & unpack()
Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 6 von 54.
unpack(). Diese sind besonders nützlich bei der Arbeit mit Funktionen, die eine flexible Argumentbehandlung benötigen.Du kannst mehrere Werte mithilfe der Tabellenkonstruktor-Syntax mit geschweiften Klammern in einer listenartigen Tabelle erfassen. Dadurch werden alle Werte in einer einzigen Tabellenstruktur gesammelt.local args = {10, 20, 30}
print(args[1]) -- Ausgabe: 10
print(#args) -- Ausgabe: 3unpack() macht das Gegenteil. Sie nimmt eine Tabelle im Listenstil und gibt alle ihre Elemente als separate Werte zurück. Dadurch kannst du den Inhalt einer Tabelle als einzelne Argumente an eine Funktion übergeben.Wichtig: Während 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 eine Tabelle, die die drei Argumente mithilfe der Syntax {a, b, c} enthält, 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(number): Erste Zahlb(number): Zweite Zahlc(number): Dritte Zahl
Rückgabe: Die Summe aller drei Zahlen (number)
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 'unpack'-Funktion, um die Tabellenargumente zu expandieren
endDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & 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