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 wywołuje 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, a następnie zapisuje funkcję zwrotną w tablicy zdarzeń, używając nazwy zdarzenia jako klucza - Zdefiniuj funkcję
trigger, która przyjmujeeventNameiarg, wyszukuje funkcję zwrotną w tablicy zdarzeń i wywołuje ją z argumentem, jeśli ją znajdzie - Zarejestruj wcześniej 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
- Wywołaj zdarzenie określone przez parametr
eventName, przekazując mu parametrvalue - Zwróć wynik wywołanego zdarzenia lub
"Event not found", jeśli zdarzenie nie istnieje
Parametry:
eventName(string): nazwa zdarzenia do wywołaniavalue(number): wartość przekazywana do funkcji zwrotnej zdarzenia
Zwraca:
- Wynik funkcji zwrotnej (number) lub
"Event not found", jeśli zdarzenie nie istnieje (number|string)
Spróbuj swoich sił
function createEventSystem(eventName, value)
-- Wpisz kod tutaj
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