Menu
CoddyTech

Danh sách vũ khí

Thuộc phần Giới thiệu về Luau trong hành trình Lua của Coddy. Bài học 69 trên 80.

challenge icon

Thử thách

Dễ

Điền vào danh sách vũ khí có kiểu dữ liệu bằng addItem.

  1. Xóa các dòng bên dưới -- Try it.
  2. Phía trên dòng đó, tạo local weapons: {Item<{damage: number}>} = {}.
  3. Dùng addItem để thêm "Iron Sword" với {damage = 25}, rồi thêm "Fire Axe" với {damage = 40}.
  4. Bên dưới -- Try it, in ra #weapons và weapons[2].name.

Nhấn Run Code: đầu ra hiển thị 2 và Fire Axe.

Tự làm thử

-- Cấu trúc mục chung của mọi kho đồ
type Item<T> = {
    id: number,
    name: string,
    data: T,
}
local sword: Item<{damage: number}> = {id = 1, name = "Iron Sword", data = {damage = 25}}
local potion: Item<{heal: number}> = {id = 2, name = "Health Potion", data = {heal = 40}}
-- Tạo một mục với id chưa dùng tiếp theo, lưu mục đó rồi trả về
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
-- Thử xem
print(addItem({}, "Old Map", "torn").id)

Tất cả bài học trong Giới thiệu về Luau

Tự luyện tập: Trình biên dịch Luau online