Recapitulação - Manipulador de Eventos Simples
Parte da seção Logic & Flow do Journey de Lua da Coddy — lição 15 de 54.
Desafio
FácilEscreva uma função createEventSystem que cria um sistema de eventos simples com eventos pré-registrados e dispara um baseado nos parâmetros de entrada.
Lógica:
- Crie uma tabela vazia para armazenar eventos dentro de
createEventSystem - Defina uma função
registerque recebeeventNameecallback, armazenando o callback na tabela de eventos com o nome do evento como chave - Defina uma função
triggerque recebeeventNameearg, procura o callback na tabela de eventos e o chama com o argumento, caso ele exista - Pré-registre três eventos:
"double": recebe um número e o retorna multiplicado por 2"square": recebe um número e o retorna ao quadrado"increment": recebe um número e o retorna somado a 1
- Dispare o evento especificado pelo parâmetro
eventNamecom o parâmetrovalue - Retorne o resultado do evento disparado, ou
"Event not found"se o evento não existir
Parâmetros:
eventName(string): O nome do evento a ser disparadovalue(number): O valor a ser passado para o callback do evento
Retorno:
- O resultado da função de callback (number), ou
"Event not found"se o evento não existir (number|string)
Experimente você mesmo
function createEventSystem(eventName, value)
-- Escreva o código aqui
end
Todas as lições de Logic & Flow
1Iteração Avançada de Tabelas
Iterando com pairs()Iterando com ipairs()pairs() vs. ipairs()Revisão - Ficha de Personagem2Mais Funções da Biblioteca Table
table.concat()Construção de tabelas e unpack()table.sort()Ordenação personalizada com funçõesRecapitulação - Placar de recordes3Conceitos Avançados de Funções
Retornando Múltiplos ValoresFunções Variádicas (...)Funções como Valores de Primeira ClasseFunções AnônimasO que é uma Closure?Recapitulação - Manipulador de Eventos Simples