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]
endBerikan {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.
Tantangan
MudahBuat fungsi generik bernama first yang:
- mendeklarasikan parameter tipe
T - menerima satu parameter bernama
itemsdengan tipe{T} - mengembalikan elemen pertama, dengan tipe pengembalian
T?(niljika array kosong)
Buat array bertipe berikut:
fruitsdengan tipe{string}yang berisi"apple","banana","cherry"scoresdengan tipe{number}yang berisi10,20,30,40flagsdengan tipe{boolean}yang berisifalse,trueemptydengan 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
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengantar Luau
1Memulai dengan Luau
Apa Itu Luau?Mengapa Menggunakan Luau?Kode Luau PertamamuPemeriksaan Tipe dan Mode ErrorRangkuman: Pengenalan Luau4Bekerja dengan Fungsi
Menentukan Tipe Parameter dan Nilai KembalianMenentukan Tipe Fungsi AnonimFungsi yang Tidak Mengembalikan NilaiParameter OpsionalNilai Default ParameterFungsi VariadikMendefinisikan Tipe FungsiRangkuman: Fungsi Bertipe2Tipe Inti
Tipe Dasar: num, str, boolTipe 'any': Jalan Keluar DaruratTipe 'unknown'Nil & Tipe OpsionalInferensi Tipe dalam PraktikAnotasi Tipe EksplisitUlasan: Latihan Tipe Inti5Alias, Union, dan Intersection
Alias Tipe untuk Tipe PrimitifTipe UnionMenggunakan Tipe UnionTipe LiteralTipe IntersectionMenggabungkan Alias TipeRekap: Kombinasi Tipe Lanjutan3Tabel Bertipe: array dan Map
array BertipeMenambahkan dan Membaca ElemenApa Itu Tipe Map?Mendeklarasikan dan Mengakses MapMelakukan Iterasi pada TabelTabel dengan Bentuk Campuranarray Bertipe Multidimensitable.unpack dan VarargsRingkasan: array dan Map6Pengetikan Bentuk Tabel
Anotasi Bentuk Secara InlineAlias Tipe untuk BentukProperty OpsionalBentuk vs. Tabel LonggarMemperluas BentukMenambahkan method ke BentukMethod self dan Method Titik DuaUlasan: Mendefinisikan Bentuk Tabel9Generics: Pengenalan Awal
Masalah yang Diatasi GenericsFungsi Identitas GenericMenggunakan Fungsi GenericArray GenericAlias Tipe GenericRangkuman: Fungsi GenericLatihan sendiri: Compiler Luau online