Menu
CoddyTech

Rückblick – Einfacher Event-Handler

Teil des Abschnitts Logik und Programmablauf der Lua-Journey von Coddy. Lektion 15 von 54.

challenge icon

Aufgabe

Einfach

Schreibe eine Funktion createEventSystem, die ein einfaches Ereignissystem mit vorregistrierten Ereignissen erstellt und anhand von Eingabeparametern eines davon auslöst.

Logik:

  • Erstelle innerhalb von createEventSystem eine leere Tabelle zum Speichern von Ereignissen
  • Definiere eine Funktion register, die eventName und callback entgegennimmt (eine Funktion, die später ausgeführt wird, wenn das Ereignis ausgelöst wird), und die Rückruffunktion in der Ereignistabelle speichert, wobei der Ereignisname als Schlüssel dient
  • Definiere eine Funktion trigger, die eventName und arg entgegennimmt, die Rückruffunktion in der Ereignistabelle nachschlägt und sie mit dem Argument aufruft, falls sie vorhanden ist
  • Registriere vor dem Auslösen eines Ereignisses diese drei Ereignisse:
    • "double": Nimmt eine Zahl entgegen und gibt sie mit 2 multipliziert zurück
    • "square": Nimmt eine Zahl entgegen und gibt ihr Quadrat zurück
    • "increment": Nimmt eine Zahl entgegen und gibt sie plus 1 zurück
  • Löse das durch den Parameter eventName angegebene Ereignis mit dem Parameter value aus
  • Gib das Ergebnis des ausgelösten Ereignisses zurück oder "Event not found", falls das Ereignis nicht existiert

Parameter:

  • eventName (Zeichenkette): Der Name des auszulösenden Ereignisses
  • value (Zahl): Der Wert, der an die Ereignis-Rückruffunktion übergeben wird

Rückgabewert:

  • Das Ergebnis der Rückruffunktion (Zahl) oder "Event not found", falls das Ereignis nicht existiert (Zahl|Zeichenkette)

Probier es selbst

function createEventSystem(eventName, value)
    -- Schreibe hier Code
end

Alle Lektionen in Logik und Programmablauf

Übe selbstständig: Online-Lua-Compiler