Fungsi: Tambahkan Barang
Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 64 dari 73.
Tantangan
MudahKembangkan proyekmu dari pelajaran sebelumnya (tetap gunakan tipe Item<T>).
- Tulis fungsi generik
addItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>yang membuat item denganid = #inventory + 1, memasukkannya ke dalaminventorydengantable.insert, lalu mengembalikannya. - Buat array bertipe kosong
weaponsdengan tipe{Item<{damage: number}>}. - Gunakan
addItemuntuk menambahkan"Iron Sword"dengan{damage = 25}, lalu simpan hasilnya disword. - Gunakan
addItemuntuk menambahkan"Fire Axe"dengan{damage = 40}, lalu simpan hasilnya diaxe.
Lalu cetak, masing-masing pada barisnya sendiri:
#weaponssword.idsword.nameaxe.idweapons[2].data.damage
Coba sendiri
-- The generic item shape every inventory will share
type Item<T> = {
id: number,
name: string,
data: T,
}
-- A weapon item: T is filled in with {damage: number}
local sword: Item<{damage: number}> = {
id = 1,
name = "Iron Sword",
data = {damage = 25},
}
-- A potion item: same shape, different data type
local potion: Item<{heal: number}> = {
id = 2,
name = "Health Potion",
data = {heal = 40},
}
print(sword.id)
print(sword.name)
print(sword.data.damage)
print(potion.id)
print(potion.name)
print(potion.data.heal)
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