Menu
CoddyTech

Recapitulação - Manipulador de Eventos Simples

Parte da seção Lógica e fluxo do Journey de Lua da Coddy. Lição 15 de 54.

challenge icon

Desafio

Fácil

Escreva uma função createEventSystem que cria um sistema de eventos simples com eventos pré-registrados e aciona um deles com base nos parâmetros de entrada.

Lógica:

  • Crie uma tabela vazia para armazenar eventos dentro de createEventSystem
  • Defina uma função register que recebe eventName e callback (uma função a ser executada mais tarde, quando o evento for acionado), armazenando o callback na tabela de eventos com o nome do evento como chave
  • Defina uma função trigger que recebe eventName e arg, procura o callback na tabela de eventos e o chama com o argumento, caso exista
  • Antes de acionar qualquer evento, registre estes três eventos:
    • "double": recebe um número e o retorna multiplicado por 2
    • "square": recebe um número e o retorna elevado ao quadrado
    • "increment": recebe um número e o retorna somado a 1
  • Acione o evento especificado pelo parâmetro eventName com o parâmetro value
  • Retorne o resultado do evento acionado ou "Event not found" se o evento não existir

Parâmetros:

  • eventName (string): O nome do evento a ser acionado
  • value (number): O valor a ser passado ao callback do evento

Retorno:

  • O resultado da função 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 Lógica e fluxo

Pratique por conta própria: Compilador de Lua online