Ulasan: Penangan Event Sederhana
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 15 dari 54.
Tantangan
MudahTulis fungsi createEventSystem yang membuat sistem event sederhana dengan event yang telah didaftarkan sebelumnya, lalu memicu salah satunya berdasarkan parameter input.
Logika:
- Buat tabel kosong untuk menyimpan event di dalam
createEventSystem - Definisikan fungsi
registeryang menerimaeventNamedancallback, lalu menyimpan callback di tabel event dengan nama event sebagai kuncinya - Definisikan fungsi
triggeryang menerimaeventNamedanarg, mencari callback di tabel event, lalu memanggilnya dengan argumen tersebut jika callback tersedia - Daftarkan terlebih dahulu tiga event:
"double": menerima angka dan mengembalikannya setelah dikalikan dengan 2"square": menerima angka dan mengembalikannya setelah dikuadratkan"increment": menerima angka dan mengembalikannya setelah ditambah 1
- Picu event yang ditentukan oleh parameter
eventNamedengan parametervalue - Kembalikan hasil event yang dipicu, atau
"Event not found"jika event tersebut tidak ada
Parameter:
eventName(string): Nama event yang akan dipicuvalue(number): Nilai yang akan diteruskan ke callback event
Nilai yang dikembalikan:
- Hasil fungsi callback (number), atau
"Event not found"jika event tersebut tidak ada (number|string)
Coba sendiri
function createEventSystem(eventName, value)
-- Tulis kodemu di sini
end
Semua pelajaran di Logika dan Alur
1Iterasi Tabel Tingkat Lanjut
Iterasi dengan pairs()Iterasi dengan ipairs()pairs() vs. ipairs()Rangkuman: Lembar Karakter2Fungsi library tabel Lainnya
table.concat()Pembuatan tabel & unpack()table.sort()Pengurutan Kustom dengan FungsiRangkuman, Papan Skor Tertinggi3Konsep Fungsi Tingkat Lanjut
Mengembalikan Beberapa NilaiFungsi Variadik (...)Fungsi sebagai Nilai Kelas SatuFungsi AnonimApa Itu Closure?Ulasan: Penangan Event SederhanaLatihan sendiri: Compiler Lua online