Menu
Coddy logo textTech

Итоги — простой обработчик событий

Часть раздела Logic & Flow путешествия по Lua на Coddy — урок 15 из 54.

challenge icon

Задание

Легко

Напишите функцию createEventSystem, которая создает простую систему событий с предварительно зарегистрированными событиями и запускает одно из них на основе входных параметров.

Логика:

  • Создайте пустую таблицу для хранения событий внутри createEventSystem
  • Определите функцию register, которая принимает eventName и callback, сохраняя обратный вызов в таблице событий с именем события в качестве ключа
  • Определите функцию trigger, которая принимает eventName и arg, ищет обратный вызов в таблице событий и вызывает его с аргументом, если он существует
  • Предварительно зарегистрируйте три события:
    • "double": принимает число и возвращает его, умноженное на 2
    • "square": принимает число и возвращает его в квадрате
    • "increment": принимает число и возвращает его плюс 1
  • Запустите событие, указанное параметром eventName, с параметром value
  • Верните результат запущенного события или "Event not found", если событие не существует

Параметры:

  • eventName (string): Имя события для запуска
  • value (number): Значение для передачи в обратный вызов события

Возвращает:

  • Результат функции обратного вызова (number) или "Event not found", если событие не существует (number|string)

Попробуйте сами

function createEventSystem(eventName, value)
    -- Напишите код здесь
end

Все уроки раздела Logic & Flow