Tabellenerstellung & 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 Argumenthandhabung erfordern.Sie können mehrere Werte in einer listenartigen Tabelle erfassen, indem Sie die table-Konstruktorsyntax mit geschweiften Klammern verwenden. Dies sammelt alle Werte in einer einzigen Tabellenstruktur.local args = {10, 20, 30}
print(args[1]) -- Ausgabe: 10
print(#args) -- Ausgabe: 3unpack()-Funktion macht das Gegenteil – sie nimmt eine list-style table auf und gibt alle ihre Elemente als separate values zurück. Dies ermöglicht es Ihnen, table-Inhalte als einzelne arguments an eine Funktion zu übergeben.Wichtig: Während neuere Versionen von Lua (5.2+) diese Funktion zu table.unpack() verschoben haben, läuft in dieser Umgebung Lua 5.1, sodass Sie die globale unpack()-Funktion verwenden müssen.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 deren Summe unter Verwendung von Tabellenkonstruktion und unpack() zurückgibt.
Erstelle eine Tabelle, die die drei Argumente mittels der Syntax {a, b, c} enthält, packe diese dann aus und übergib sie an eine andere Funktion, die deren Summe berechnet.
Hinweis: Bitte verwende die globale Funktion unpack() anstelle von table.unpack(), um die Kompatibilität mit dieser Umgebung zu gewährleisten.
Logik:
- Verwende
{a, b, c}, um eine Tabelle zu erstellen, die alle drei Argumente enthält - Erstelle eine separate Funktion namens
sum, die drei Parameter entgegennimmt und deren 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 übergebe die Werte an die Summenfunktion
-- Hinweis: Verwende die globale 'unpack'-Funktion, um die Tabellenargumente zu erweitern
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 Table-Iteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen4Einführung in Metatables
Was ist eine Metatable?setmetatable & getmetatableDie __index-MetamethodeDie __newindex-MetamethodeDie __tostring-MetamethodeArithmetische Metamethoden Teil 1Arithmetische Metamethoden Teil 2Zusammenfassung – Schreibgeschützte Tabellen7Fortgeschrittene String-Manipulation
string.gsub() für ErsetzungenEinführung in String-Patternsstring.find()string.match()Iterieren mit string.gmatch()Rückblick – Log-File-Parser2Weitere Funktionen der Table-Bibliothek
table.concat()Tabellenerstellung & unpack()table.sort()Benutzerdefiniertes Sortieren mit FunktionenRückblick – Highscore-Tabelle