Array Generic
Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 64 dari 80.
Generics sangat berguna saat tabel digunakan. Kamu sudah menulis array bertipe sebagai {number} atau {string}. Di dalam fungsi generik, tipe elemennya bisa langsung berupa T, dan {T} berarti "array yang berisi apa pun yang menjadi tipe T".
Berikut contoh klasiknya: mengambil elemen pertama dari array apa pun:
local function first<T>(items: {T}): T?
return items[1]
endBerikan {string}, dan pemeriksa menyimpulkan T = string, sehingga hasilnya berupa string. Berikan {number}, dan hasilnya berupa number. Satu fungsi menggantikan seluruh kumpulan salinan untuk tiap tipe.
Perhatikan tipe nilai yang dikembalikan: tipenya T?, bukan T. Array bisa kosong, dan dalam kasus itu items[1] bernilai nil: tipe opsional yang kamu pelajari sebelumnya menjelaskannya dengan tepat: "T, atau nil". Pemeriksa akan mendorong pemanggil fungsi untuk menangani kasus nil sebelum menggunakan hasilnya. Inilah kemampuan menangkap bug yang kamu inginkan dari bahasa bertipe.
Tantangan
MudahDapatkan elemen pertama dari array apa pun.
- Tulis
local function first<T>(items: {T}): T?yang mengembalikanitems[1]. - Deklarasikan
local fruits: {string} = {"apple", "banana"}danlocal empty: {number} = {}. - Cetak
first(fruits), lalufirst(empty).
Tekan Jalankan: output menampilkan apple dan nil.
Coba sendiri
-- 1) first<T>(items: {T}): T?
-- 2) fruits: {string} dan {number} yang kosong
-- 3) cetak nilai pertama dari masing-masing
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
Mengetik Parameter dan Nilai KembalianMengetik Fungsi AnonimFungsi Tanpa Nilai KembalianParameter OpsionalNilai Parameter DefaultNilai Default untuk BooleanFungsi VariadikMendefinisikan Tipe FungsiUlasan: Fungsi Bertipe2Tipe Inti
Number, String, dan BooleanTipe 'any': Jalan KeluarTipe 'unknown'Nil dan 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 & map
Array BertipeMenambahkan dan Membaca ElemenApa Itu Tipe Map?Mendeklarasikan dan Mengakses MapMenelusuri TabelTabel dengan Bentuk CampuranMembaca GridMembuat Gridtable.unpackRangkuman: 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