Tipe Function & Generic
Penjelasan
Selain tipe data dasar, Luau juga mendukung anotasi tipe untuk fungsi itu sendiri (function type), berguna saat sebuah fungsi menerima fungsi lain sebagai parameter (callback). Sintaksnya `(parameter: tipe) -> tipeReturn`, mirip signature fungsi pada bahasa bertipe statis lain. Luau juga mendukung generic — fungsi atau tipe yang bisa bekerja dengan tipe data apa pun tanpa kehilangan informasi tipe, ditulis dengan sintaks `<T>`. Ini berguna untuk fungsi utilitas seperti filter atau map pada array yang perlu bekerja untuk berbagai tipe elemen tanpa duplikasi kode per tipe.
Contoh Konsep
-- Tipe untuk parameter callback
local function untukSetiap(daftar: {number}, aksi: (number) -> ())
for _, item in ipairs(daftar) do
aksi(item)
end
end
untukSetiap({1, 2, 3}, function(angka)
print(angka * 2)
end)
-- Fungsi generic
local function elemenPertama<T>(daftar: {T}): T?
return daftar[1]
end
local hasil = elemenPertama({"a", "b", "c"})
print(hasil)
Praktikum
Buat fungsi generic saring<T>(daftar: {T}, kondisi: (T) -> boolean): {T} yang mengembalikan array baru berisi elemen yang lolos kondisi.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Gunakan tipe generic saat menulis fungsi utilitas yang dipakai ulang untuk berbagai tipe data, supaya tetap type-safe tanpa harus menulis versi terpisah untuk tiap tipe.