Menu
Coddy logo textTech

Tabellenerstellung & unpack()

Teil des Abschnitts Logic & Flow der Lua-Journey von Coddy — Lektion 6 von 54.

Lua bietet ein komplementäres Paar von Techniken für die Arbeit mit mehreren Werten: Tabellenkonstruktion und table.unpack(). Diese sind besonders nützlich bei der Arbeit mit Funktionen, die eine flexible Argumentbehandlung erfordern.

Sie können mehrere Werte in einer tabellenartigen Liste erfassen, indem Sie die Tabellen-Konstruktor-Syntax mit geschweiften Klammern verwenden. Dies fasst alle Werte in einer einzigen Tabellenstruktur zusammen.

local args = {10, 20, 30}
print(args[1])  -- Ausgabe: 10
print(#args)    -- Ausgabe: 3

Die Funktion table.unpack() bewirkt das Gegenteil – sie nimmt eine Tabellenliste entgegen und gibt alle ihre Elemente als separate Werte zurück. Dies ermöglicht es Ihnen, Tabelleninhalte als einzelne Argumente an eine Funktion zu übergeben.

local numbers = {5, 10, 15}
print(table.unpack(numbers))  -- Ausgabe: 5    10    15

Diese Techniken arbeiten nahtlos zusammen. Sie können Werte in einer Tabelle sammeln, die Tabelle bearbeiten und sie dann wieder in einzelne Werte entpacken.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Funktion forwardArguments, die drei Zahlen a, b und c entgegennimmt und deren Summe zurückgibt, indem sie Tabellenkonstruktion und table.unpack() verwendet.

Erstellen Sie eine Tabelle, die die drei Argumente mit der Syntax {a, b, c} enthält, entpacken Sie diese dann und übergeben Sie sie an eine andere Funktion, die deren Summe berechnet.

Logik:

  • Verwenden Sie {a, b, c}, um eine Tabelle zu erstellen, die alle drei Argumente enthält
  • Erstellen Sie eine separate Funktion namens sum, die drei Parameter entgegennimmt und deren Summe zurückgibt
  • Verwenden Sie table.unpack(), um die Tabellenwerte an die Funktion sum zu übergeben
  • Geben Sie das Ergebnis der Funktion sum zurück

Parameter:

  • a (Zahl): Erste Zahl
  • b (Zahl): Zweite Zahl
  • c (Zahl): Dritte Zahl

Rückgabewert: Die Summe aller drei Zahlen (Zahl)

Spickzettel

Tabellen-Konstruktor-Syntax {a, b, c, ...} erstellt eine listenartige Tabelle. Verwenden Sie #, um die Anzahl der Elemente zu erhalten.

local args = {10, 20, 30}
print(args[1])  -- Ausgabe: 10
print(#args)    -- Ausgabe: 3

table.unpack() nimmt eine listenartige Tabelle entgegen und gibt alle ihre Elemente als separate Werte zurück, was es Ihnen ermöglicht, Tabelleninhalte als einzelne Argumente an eine Funktion zu übergeben.

local numbers = {5, 10, 15}
print(table.unpack(numbers))  -- Ausgabe: 5    10    15

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

end
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow