Récapitulatif - Gestionnaire d’événements simple
Fait partie de la section Logique et déroulement du programme du Journey Lua de Coddy. Leçon 15 sur 54.
Défi
FacileÉcris 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ée une table vide pour stocker les événements dans
createEventSystem - Définis une fonction
registerqui prendeventNameetcallback(une fonction à exécuter plus tard, lorsque l’événement est déclenché) et stocke le rappel dans la table des événements, avec le nom de l’événement comme clé - Définis une fonction
triggerqui prendeventNameetarg, recherche le rappel dans la table des événements et l’appelle avec l’argument s’il existe - Avant de déclencher quoi que ce soit, enregistre ces trois événements :
"double": prend un nombre et renvoie ce nombre multiplié par 2"square": prend un nombre et renvoie ce nombre au carré"increment": prend un nombre et renvoie ce nombre plus 1
- Déclenche l’événement spécifié par le paramètre
eventNameavec le paramètrevalue - Renvoie le résultat de l’événement déclenché, ou
"Event not found"si l’événement n’existe pas
Paramètres :
eventName(chaîne) : le nom de l’événement à déclenchervalue(nombre) : la valeur à transmettre au rappel de l’événement
Valeur renvoyée :
- Le résultat de la fonction de rappel (nombre), ou
"Event not found"si l’événement n’existe pas (nombre|chaîne)
Essayez vous-même
function createEventSystem(eventName, value)
-- Écrivez le code ici
end
Toutes les leçons de Logique et déroulement du programme
1Itération avancée des tables
Itérer avec pairs()Itérer avec ipairs()pairs() contre ipairs()Récapitulatif - Fiche de personnage2Fonctions supplémentaires de la bibliothèque table
table.concat()construction de tables et unpack()table.sort()Tri personnalisé avec des fonctionsRécapitulatif - Tableau des meilleurs scores3Concepts avancés des fonctions
Retourner plusieurs valeursFonctions variadiques (...)Les fonctions comme valeurs de première classeFonctions anonymesQu’est-ce qu’une fermeture ?Récapitulatif - Gestionnaire d’événements simpleEntraînez-vous par vous-même : Compilateur Lua en ligne