Riepilogo - Gestore di eventi semplice
Fa parte della sezione Logica e flusso del percorso Lua di Coddy. Lezione 15 di 54.
Sfida
FacileScrivi una funzione createEventSystem che crea un semplice sistema di eventi con eventi preregistrati e ne attiva uno in base ai parametri di input.
Logica:
- Crea una tabella vuota per memorizzare gli eventi all'interno di
createEventSystem - Definisci una funzione
registerche accettaeventNameecallback, memorizzando la callback nella tabella degli eventi usando il nome dell'evento come chiave - Definisci una funzione
triggerche accettaeventNameearg, cerca la callback nella tabella degli eventi e, se esiste, la chiama con l'argomento - Prere registra tre eventi:
"double": accetta un numero e lo restituisce moltiplicato per 2"square": accetta un numero e lo restituisce elevato al quadrato"increment": accetta un numero e lo restituisce aumentato di 1
- Attiva l'evento specificato dal parametro
eventNameusando il parametrovalue - Restituisci il risultato dell'evento attivato, oppure
"Event not found"se l'evento non esiste
Parametri:
eventName(stringa): il nome dell'evento da attivarevalue(numero): il valore da passare alla callback dell'evento
Valore restituito:
- Il risultato della funzione callback (numero), oppure
"Event not found"se l'evento non esiste (numero|string)
Provalo tu
function createEventSystem(eventName, value)
-- Scrivi il codice qui
end
Tutte le lezioni di Logica e flusso
1Iterazione avanzata delle tabelle
Iterare con pairs()Iterare con ipairs()pairs() vs. ipairs()Riepilogo - Scheda del personaggio2Altre funzioni della libreria table
table.concat()Costruzione di tabelle e unpack()table.sort()Ordinamento personalizzato con funzioniRiepilogo - Tabellone dei punteggi più alti3Concetti avanzati sulle funzioni
Restituire più valoriFunzioni variadiche (...)Funzioni come valori di prima classeFunzioni anonimeChe cos'è una closure?Riepilogo - Gestore di eventi sempliceEsercitati da solo: Compilatore Lua online