Zusammenfassung – Einfacher Event Handler
Teil des Abschnitts Logic & Flow 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 Logic & Flow
1Fortgeschrittene Table-Iteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen4Einführung in Metatables
Was ist eine Metatable?setmetatable & getmetatableDie __index-MetamethodeDie __newindex-MetamethodeDie __tostring-MetamethodeArithmetische Metamethoden Teil 1Arithmetische Metamethoden Teil 2Zusammenfassung – Schreibgeschützte Tabellen7Fortgeschrittene String-Manipulation
string.gsub() für ErsetzungenEinführung in String-Patternsstring.find()string.match()Iterieren mit string.gmatch()Rückblick – Log-File-Parser2Weitere Funktionen der Table-Bibliothek
table.concat()Tabellenerstellung & unpack()table.sort()Benutzerdefiniertes Sortieren mit FunktionenRückblick – Highscore-Tabelle3Fortgeschrittene Funktionskonzepte
Mehrere RückgabewerteVariadische Funktionen (...)Funktionen als First-Class ValuesAnonyme FunktionenWas ist eine Closure?Zusammenfassung – Einfacher Event Handler