Menu
Coddy logo textTech

Tabellenkonstruktion & unpack()

Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 6 von 54.

Lua bietet ein sich ergänzendes Paar von Techniken für die Arbeit mit mehreren Werten: Tabellenkonstruktion und 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: 3
Die Funktion unpack() 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    15
Diese Techniken arbeiten nahtlos zusammen. Du kannst Werte in einer Tabelle sammeln, die Tabelle bearbeiten und sie anschließend wieder in einzelne Werte entpacken.
challenge icon

Aufgabe

Einfach

Schreibe 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 Funktion sum zu übergeben
  • Gib das Ergebnis der Funktion sum zurück

Parameter:

  • a (number): Erste Zahl
  • b (number): Zweite Zahl
  • c (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

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 Logik & Programmablauf

Übe selbstständig: Online-Lua-Compiler