Menu
Coddy logo textTech

Anonyme Funktionen

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

Da du nun verstanden hast, dass Funktionen in Variablen gespeichert und weitergegeben werden können, gibt es eine noch prägnantere Möglichkeit, sie zu schreiben. Anstatt einer Funktion immer einen Namen zu geben, kannst du sie direkt dort erstellen, wo du sie benötigst. Diese werden anonyme Funktionen genannt.

Eine anonyme Funktion ist einfach eine Funktion ohne Namen. Du definierst sie mit dem Schlüsselwort function, unmittelbar gefolgt von ihren Parametern und ihrem Rumpf:

function(a, b)
    return a + b
end

Dies erstellt einen Funktionswert, der sofort verwendet werden kann. Anonyme Funktionen sind besonders nützlich, wenn Funktionen als Argumente an andere Funktionen übergeben werden. Erinnerst du dich an das Beispiel für benutzerdefiniertes Sortieren von vorhin? So sieht es mit einer anonymen Funktion aus:

local players = {
    {name = "Alice", score = 150},
    {name = "Bob", score = 200},
    {name = "Charlie", score = 175}
}

table.sort(players, function(a, b)
    return a.score > b.score
end)

Statt eine separate benannte Funktion für den Vergleich zu definieren, wird die Funktion direkt als zweites Argument für table.sort() erstellt. Dadurch wird der Code kompakter, und die Sortierlogik bleibt direkt dort, wo sie verwendet wird.

challenge icon

Aufgabe

Einfach

Schreibe eine Funktion filterByThreshold, die numbers und threshold entgegennimmt und eine neue Tabelle zurückgibt, die nur Zahlen enthält, die größer als der Schwellenwert sind.

Verwende table.insert() mit einem Ansatz mit einer anonymen Funktion, um die Zahlen zu filtern. Erstelle die Filterlogik inline, ohne eine separate benannte Funktion zu definieren.

Logik:

  • Erstelle eine leere Ergebnistabelle
  • Iteriere durch die Zahlentabelle
  • Verwende für jede Zahl eine anonyme Funktion, um zu prüfen, ob sie den Schwellenwert überschreitet
  • Wenn die Prüfung true zurückgibt, füge die Zahl der Ergebnistabelle hinzu
  • Gib die gefilterte Ergebnistabelle zurück

Parameter:

  • numbers (table): Eine Tabelle im Listenstil, die numerische Werte enthält
  • threshold (number): Der Mindestwert (exklusiv) für die Filterung

Rückgabe: Eine Tabelle, die nur Zahlen enthält, die größer als der Schwellenwert sind (table)

Probier es selbst

function filterByThreshold(numbers, threshold)
    -- Schreibe hier den Code
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