Rückblick – Einfacher Event-Handler
Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 15 von 54.
Aufgabe
EinfachSchreiben Sie eine Funktion createEventSystem, die ein einfaches Ereignissystem mit vorregistrierten Ereignissen erstellt und eines basierend auf den Eingabeparametern auslöst.
Logik:
- Erstellen Sie eine leere Tabelle zum Speichern von Ereignissen innerhalb von
createEventSystem - Definieren Sie eine
register-Funktion, dieeventNameundcallbackentgegennimmt und den Callback in der Ereignistabelle mit dem Ereignisnamen als Schlüssel speichert - Definieren Sie eine
trigger-Funktion, dieeventNameundargentgegennimmt, den Callback in der Ereignistabelle nachschlägt und ihn mit dem Argument aufruft, falls er existiert - Registrieren Sie drei Ereignisse vor:
"double": nimmt eine Zahl entgegen und gibt sie mit 2 multipliziert zurück"square": nimmt eine Zahl entgegen und gibt sie im Quadrat zurück"increment": nimmt eine Zahl entgegen und gibt sie plus 1 zurück
- Lösen Sie das durch den Parameter
eventNamespezifizierte Ereignis mit dem Parametervalueaus - Geben Sie das Ergebnis des ausgelösten Ereignisses zurück, oder
"Event not found", falls das Ereignis nicht existiert
Parameter:
eventName(string): Der Name des auszulösenden Ereignissesvalue(number): Der Wert, der an den Ereignis-Callback übergeben werden soll
Rückgabewert:
- Das Ergebnis der Callback-Funktion (number), oder
"Event not found", falls das Ereignis nicht existiert (number|string)
Probier es selbst
function createEventSystem(eventName, value)
-- Code hier schreiben
end
Alle Lektionen in Logik & 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