Podsumowanie — prosty obsługiwacz zdarzeń
Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 15 z 54.
Wyzwanie
ŁatwyNapisz funkcję createEventSystem, która tworzy prosty system zdarzeń z wcześniej zarejestrowanymi zdarzeniami i wyzwala jedno z nich na podstawie parametrów wejściowych.
Logika:
- Utwórz pustą tablicę do przechowywania zdarzeń wewnątrz funkcji
createEventSystem - Zdefiniuj funkcję
register, która przyjmujeeventNameicallback(funkcję do późniejszego uruchomienia, gdy zdarzenie zostanie wyzwolone) i zapisuje funkcję zwrotną w tablicy zdarzeń pod nazwą zdarzenia jako kluczem - Zdefiniuj funkcję
trigger, która przyjmujeeventNameiarg, wyszukuje funkcję zwrotną w tablicy zdarzeń i wywołuje ją z argumentem, jeśli istnieje - Przed wyzwoleniem jakiegokolwiek zdarzenia zarejestruj te trzy zdarzenia:
"double": przyjmuje liczbę i zwraca ją pomnożoną przez 2"square": przyjmuje liczbę i zwraca jej kwadrat"increment": przyjmuje liczbę i zwraca ją powiększoną o 1
- Wyzwól zdarzenie określone przez parametr
eventName, przekazując mu parametrvalue - Zwróć wynik wyzwolonego zdarzenia lub
"Event not found", jeśli zdarzenie nie istnieje
Parametry:
eventName(ciąg znaków): nazwa zdarzenia do wyzwoleniavalue(liczba): wartość przekazywana do funkcji zwrotnej zdarzenia
Zwraca:
- Wynik funkcji zwrotnej (liczba) lub
"Event not found", jeśli zdarzenie nie istnieje (liczba|ciąg znaków)
Spróbuj swoich sił
function createEventSystem(eventName, value)
-- Wpisz tutaj kod
end
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane iterowanie po tabelach
Iterowanie za pomocą pairs()Iterowanie za pomocą ipairs()pairs() a ipairs()Powtórka — karta postaci2Więcej funkcji biblioteki table
table.concat()Tworzenie tabel i unpack()table.sort()Sortowanie niestandardowe za pomocą funkcjiPodsumowanie — tablica najlepszych wyników5Projekt: silnik tekstowej gry przygodowej
Konfiguracja projektu: pokójŁączenie pokoi3Zaawansowane koncepcje funkcji
Zwracanie wielu wartościFunkcje wariadyczne (...)Funkcje jako wartości pierwszej klasyFunkcje anonimoweCzym jest domknięcie?Podsumowanie — prosty obsługiwacz zdarzeńPoćwicz samodzielnie: Kompilator Lua online