Menu
CoddyTech

Fungsi: Tambahkan Barang

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

challenge icon

Tantangan

Mudah

Kembangkan 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 dengan id = #inventory + 1, memasukkannya ke dalam inventory dengan table.insert, lalu mengembalikannya.
  • Buat array bertipe kosong weapons dengan tipe {Item<{damage: number}>}.
  • Gunakan addItem untuk menambahkan "Iron Sword" dengan {damage = 25}, lalu simpan hasilnya di sword.
  • Gunakan addItem untuk menambahkan "Fire Axe" dengan {damage = 40}, lalu simpan hasilnya di axe.

Lalu cetak, masing-masing pada barisnya sendiri:

  1. #weapons
  2. sword.id
  3. sword.name
  4. axe.id
  5. weapons[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

Latihan sendiri: Compiler Luau online