Resumen - Manejador de eventos simple
Parte de la sección Logic & Flow del Journey de Lua de Coddy — lección 15 de 54.
Desafío
FácilEscribe una función createEventSystem que cree un sistema de eventos simple con eventos prerregistrados y active uno basado en los parámetros de entrada.
Lógica:
- Crea una tabla vacía para almacenar eventos dentro de
createEventSystem - Define una función
registerque tomeeventNameycallback, almacenando el callback en la tabla de eventos con el nombre del evento como clave - Define una función
triggerque tomeeventNameyarg, busque el callback en la tabla de eventos y lo llame con el argumento si existe - Prerregistra tres eventos:
"double": toma un número y lo devuelve multiplicado por 2"square": toma un número y lo devuelve al cuadrado"increment": toma un número y lo devuelve más 1
- Activa el evento especificado por el parámetro
eventNamecon el parámetrovalue - Devuelve el resultado del evento activado, o
"Event not found"si el evento no existe
Parámetros:
eventName(string): El nombre del evento a activarvalue(number): El valor a pasar al callback del evento
Devuelve:
- El resultado de la función callback (number), o
"Event not found"si el evento no existe (number|string)
Pruébalo tú mismo
function createEventSystem(eventName, value)
-- Escribe el código aquí
end
Todas las lecciones de Logic & Flow
1Iteración avanzada de tablas
Iterar con pairs()Iterar con ipairs()pairs() vs. ipairs()Resumen - Ficha de personaje2Más funciones de la librería table
table.concat()Construcción de tablas y unpack()table.sort()Ordenamiento personalizado con funcionesRepaso - Tabla de puntuaciones altas3Conceptos avanzados de funciones
Retorno de múltiples valoresFunciones variádicas (...)Funciones como valores de primera claseFunciones anónimas¿Qué es un Closure?Resumen - Manejador de eventos simple