Study
Luau

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.

Editor Latihan

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.