Menu
Coddy logo textTech

Funktionen als Werte erster Klasse

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

In Lua sind Funktionen mehr als nur Codeblöcke, die Aufgaben ausführen. Sie sind Werte, die wie jeder andere Datentyp behandelt werden können. Das bedeutet, dass du mit Funktionen genauso arbeiten kannst wie mit Zahlen, Zeichenketten oder Tabellen.

Du kannst eine Funktion in einer Variable speichern:

local greet = function()
    print("Hello!")
end

greet()  -- Ausgabe: Hello!

Hier wird die Funktion der Variablen greet zugewiesen, und du kannst sie wie jede gewöhnliche Funktion aufrufen. Das eröffnet leistungsstarke Möglichkeiten dafür, wie du deinen Code strukturierst.

Funktionen können auch als Argumente an andere Funktionen übergeben werden. Das ist besonders nützlich, wenn eine Funktion das in einer anderen definierte Verhalten verwenden soll:

function executeAction(action)
    action()
end

local sayHello = function()
    print("Hello from a function!")
end

executeAction(sayHello)  -- Ausgabe: Hello from a function!

In diesem Beispiel empfängt executeAction eine Funktion als Parameter und ruft sie auf. Die Funktion sayHello wird genauso übergeben, wie du eine Zahl oder einen String übergeben würdest.

Funktionen können sogar andere Funktionen zurückgeben. Dadurch kannst du Funktionen dynamisch auf Grundlage bestimmter Bedingungen oder Parameter erstellen:

function createMultiplier(factor)
    return function(number)
        return number * factor
    end
end

local double = createMultiplier(2)
print(double(5))  -- Ausgabe: 10
challenge icon

Aufgabe

Einfach

Schreibe eine Funktion applyOperation, die a, b und operation übernimmt und das Ergebnis der Anwendung der Operationsfunktion auf die beiden Zahlen zurückgibt.

Der Parameter operation ist eine Tabelle, die eine Funktion enthält, die mit a und b als Argumenten aufgerufen wird.

Logik:

  • Extrahiere die Funktion aus der Tabelle operation mithilfe des Schlüssels "func"
  • Rufe diese Funktion mit a und b als Argumenten auf
  • Gib das Ergebnis zurück

Parameter:

  • a (number): Erste Zahl
  • b (number): Zweite Zahl
  • operation (table): Eine Tabelle, die eine unter dem Schlüssel "func" gespeicherte Funktion enthält

Rückgabewert: Das Ergebnis des Aufrufs der Operationsfunktion mit a und b (number)

Probier es selbst

function applyOperation(a, b, operation)
    -- 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