Rückblick – Einfacher Event-Handler
Teil des Abschnitts Logik und Programmablauf der Lua-Journey von Coddy. Lektion 15 von 54.
Aufgabe
EinfachSchreibe eine Funktion createEventSystem, die ein einfaches Ereignissystem mit vorregistrierten Ereignissen erstellt und anhand von Eingabeparametern eines davon auslöst.
Logik:
- Erstelle innerhalb von
createEventSystemeine leere Tabelle zum Speichern von Ereignissen - Definiere eine Funktion
register, dieeventNameundcallbackentgegennimmt (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, dieeventNameundargentgegennimmt, 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
eventNameangegebene Ereignis mit dem Parametervalueaus - 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 Ereignissesvalue(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
1Fortgeschrittene Tabelleniteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen2Weitere Funktionen der Tabellenbibliothek
table.concat()Tabellenkonstruktion & unpack()table.sort()Eigene Sortierung mit FunktionenRückblick – Highscore-Tabelle3Fortgeschrittene Funktionskonzepte
Mehrere Werte zurückgebenVariadische Funktionen (...)Funktionen als Werte erster KlasseAnonyme FunktionenWas ist eine Closure?Rückblick – Einfacher Event-HandlerÜbe selbstständig: Online-Lua-Compiler