Fungsi: Cari Barang berdasarkan ID
Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 65 dari 73.
Tantangan
MudahLanjutkan proyekmu dari pelajaran sebelumnya (pertahankan Item<T>, addItem, dan inventory weapons dengan dua itemnya).
- Tulis fungsi generik
findItem<T>(inventory: {Item<T>}, id: number): Item<T>?yang melakukan perulangan pada inventory dan mengembalikan item yangid-nya cocok, atauniljika tidak ada yang cocok. - Panggil
findItem(weapons, 2). Jika fungsi mengembalikan item, cetaknameitem tersebut laludata.damage-nya (dua baris); jika tidak, cetakItem not found. - Panggil
findItem(weapons, 99). Jika fungsi mengembalikan item, cetaknameitem tersebut; jika tidak, cetakItem not found.
Coba sendiri
-- From the previous lesson
type Item<T> = {
id: number,
name: string,
data: T,
}
-- NEW: create an item, store it, return it
local function addItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>
local item: Item<T> = {
id = #inventory + 1,
name = name,
data = data,
}
table.insert(inventory, item)
return item
end
-- Build the weapons inventory with the new function
local weapons: {Item<{damage: number}>} = {}
local sword = addItem(weapons, "Iron Sword", {damage = 25})
local axe = addItem(weapons, "Fire Axe", {damage = 40})
print(#weapons)
print(sword.id)
print(sword.name)
print(axe.id)
print(weapons[2].data.damage)
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 Bertipe7Proyek: Pengelola Tugas dengan Tipe
Proyek: Struktur TugasFungsi untuk Menambahkan Tugas10Proyek: Inventaris Generik
Proyek: Barang InventarisFungsi: Tambahkan Barang2Tipe 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 MapLatihan sendiri: Compiler Luau online