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