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 sudah didaftarkan sebelumnya dan memicu salah satunya berdasarkan parameter input.
Logika:
- Buat tabel kosong untuk menyimpan event di dalam
createEventSystem - Definisikan fungsi
registeryang menerimaeventNamedancallback(fungsi yang akan dijalankan nanti, saat event dipicu), lalu simpan callback dalam tabel event dengan nama event sebagai kuncinya - Definisikan fungsi
triggeryang menerimaeventNamedanarg, mencari callback dalam tabel event, lalu memanggilnya dengan argumen tersebut jika callback tersedia - Sebelum memicu event apa pun, daftarkan tiga event berikut:
"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 tidak ada
Parameter:
eventName(string): Nama event yang akan dipicuvalue(number): Nilai yang akan diberikan kepada callback event
Nilai Kembalian:
- Hasil fungsi callback (number), atau
"Event not found"jika event 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