Récapitulatif - Gestionnaire d'événements simple
Fait partie de la section Logic & Flow du Journey Lua de Coddy — leçon 15 sur 54.
Défi
FacileÉcrivez une fonction createEventSystem qui crée un système d'événements simple avec des événements pré-enregistrés et en déclenche un en fonction des paramètres d'entrée.
Logique :
- Créez une table vide pour stocker les événements à l'intérieur de
createEventSystem - Définissez une fonction
registerqui prendeventNameetcallback, en stockant le rappel dans la table des événements avec le nom de l'événement comme clé - Définissez une fonction
triggerqui prendeventNameetarg, recherche le rappel dans la table des événements et l'appelle avec l'argument s'il existe - Pré-enregistrez trois événements :
"double": prend un nombre et le retourne multiplié par 2"square": prend un nombre et le retourne au carré"increment": prend un nombre et lui ajoute 1
- Déclenchez l'événement spécifié par le paramètre
eventNameavec le paramètrevalue - Retournez le résultat de l'événement déclenché, ou
"Event not found"si l'événement n'existe pas
Paramètres :
eventName(string) : Le nom de l'événement à déclenchervalue(number) : La valeur à passer au rappel de l'événement
Retourne :
- Le résultat de la fonction de rappel (number), ou
"Event not found"si l'événement n'existe pas (number|string)
Essayez vous-même
function createEventSystem(eventName, value)
-- Écrivez le code ici
end
Toutes les leçons de Logic & Flow
1Itération avancée des tables
Itérer avec pairs()Itérer avec ipairs()pairs() vs. ipairs()Récapitulatif - Fiche de personnage2Plus de fonctions de la bibliothèque table
table.concat()Construction de table & unpack()table.sort()Tri personnalisé avec des fonctionsRécapitulatif - Tableau des scores3Concepts avancés sur les fonctions
Retourner plusieurs valeursFonctions variadiques (...)Les fonctions comme valeurs de première classeFonctions anonymesQu'est-ce qu'une closure ?Récapitulatif - Gestionnaire d'événements simple