Menu
CoddyTech

Array Generic

Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 60 dari 73.

Generics sangat berguna ketika tabel mulai digunakan. Kamu sudah menulis array bertipe sebagai {number} atau {string}. Di dalam fungsi generik, tipe elemennya cukup ditulis sebagai T, dan {T} berarti "sebuah array yang tipe elemennya ditentukan oleh T".

Berikut contoh klasiknya: mengambil elemen pertama dari array apa pun:

local function first<T>(items: {T}): T?
    return items[1]
end

Berikan {string}, lalu pemeriksa menyimpulkan T = string, sehingga hasilnya berupa string. Berikan {number}, lalu hasilnya berupa angka. Satu fungsi menggantikan seluruh kumpulan salinan untuk setiap tipe.

Perhatikan tipe nilai kembalian dengan saksama: tipenya T?, bukan T. Array bisa kosong, dan dalam kasus itu, items[1] bernilai nil: tipe opsional yang kamu pelajari sebelumnya menyatakannya dengan tepat: "nilai T, atau nil". Pemeriksa akan mengingatkan pemanggil untuk menangani kasus nil sebelum menggunakan hasilnya. Inilah kemampuan menangkap bug yang kamu harapkan dari bahasa bertipe.

challenge icon

Tantangan

Mudah

Buat fungsi generik bernama first yang:

  • mendeklarasikan parameter tipe T
  • menerima satu parameter bernama items dengan tipe {T}
  • mengembalikan elemen pertama, dengan tipe pengembalian T? (nil jika array kosong)

Buat array bertipe berikut:

  • fruits dengan tipe {string} yang berisi "apple", "banana", "cherry"
  • scores dengan tipe {number} yang berisi 10, 20, 30, 40
  • flags dengan tipe {boolean} yang berisi false, true
  • empty dengan tipe {string} tanpa elemen

Cetak hasil pemanggilan first dengan setiap array, sesuai urutan tersebut, masing-masing pada barisnya sendiri.

Coba sendiri

-- Tulis kodemu di sini
-- 1) definisikan first<T>(items: {T}): T? yang mengembalikan items[1]
-- 2) buat fruits: {string}, scores: {number}, flags: {boolean},
--    dan array {string} yang kosong
-- 3) tampilkan hasil first(...) dari setiap array, sesuai urutan tersebut
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pengantar Luau

Latihan sendiri: Compiler Luau online