Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دالة: البحث عن عنصر بواسطة المعرف (ID)

جزء من قسم مقدمة إلى Luau في رحلة Lua على Coddy. الدرس 65 من 73.

challenge icon

التحدي

سهل

وسّع مشروعك من الدرس السابق (احتفظ بـ Item<T> وaddItem ومخزون weapons بعنصريه).

  • اكتب function عامة findItem<T>(inventory: {Item<T>}, id: number): Item<T>? تكرّر عبر المخزون وتُرجع العنصر الذي يطابق id الخاص به، أو nil إذا لم يوجد أي عنصر مطابق.
  • استدعِ findItem(weapons, 2). إذا أعاد عنصرًا، اطبع name الخاص بالعنصر ثم data.damage الخاص به (في سطرين)؛ وإلا فاطبع Item not found.
  • استدعِ findItem(weapons, 99). إذا أعاد عنصرًا، اطبع name الخاص بالعنصر؛ وإلا فاطبع Item not found.

جرّب بنفسك

-- من الدروس السابقة
type Item<T> = {
    id: number,
    name: string,
    data: T,
}

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

local weapons: {Item<{damage: number}>} = {}
local sword = addItem(weapons, "Iron Sword", {damage = 25})
local axe = addItem(weapons, "Fire Axe", {damage = 40})

-- اكتب الكود هنا
-- 1) findItem<T>(inventory: {Item<T>}, id: number): Item<T>?
-- 2) look up ids 2 and 99, printing details or "Item not found"

جميع دروس مقدمة إلى Luau

تدرّب بنفسك: مترجم Lua عبر الإنترنت