Menu
CoddyTech

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

Часть раздела Логика и управление потоком путешествия по 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 (строка): имя события, которое нужно запустить
  • value (число): значение, которое нужно передать обратному вызову события

Возвращает:

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

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

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

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Lua