Menu
Coddy logo textTech

Tabellenerstellung & unpack()

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

Lua bietet ein komplementäres Paar von Techniken für das Arbeiten mit mehreren Werten: Tabellenkonstruktion und 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: 3
Die unpack()-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    15
Diese Techniken greifen nahtlos ineinander. Sie können Werte in einer Tabelle sammeln, die Tabelle manipulieren und sie dann wieder in einzelne Werte entpacken.
challenge icon

Aufgabe

Einfach

Schreibe 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 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 übergebe die Werte an die Summenfunktion
    -- Hinweis: Verwende die globale 'unpack'-Funktion, um die Tabellenargumente zu erweitern

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