Итоги — простой обработчик событий
Часть раздела Logic & Flow путешествия по Lua на Coddy — урок 15 из 54.
Задание
ЛегкоНапишите функцию 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
1Продвинутая итерация таблиц
Итерация с помощью pairs()Итерация с помощью ipairs()pairs() против ipairs()Повторение — Лист персонажа2Дополнительные функции библиотеки table
table.concat()Создание таблиц и unpack()table.sort()Пользовательская сортировка с помощью функцийИтоги — Таблица рекордов3Продвинутые концепции функций
Возврат нескольких значенийВариативные функции (...)Функции как объекты первого классаАнонимные функцииЧто такое замыкание?Итоги — простой обработчик событий