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

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

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

challenge icon

التحدي

سهل

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

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

جرّب بنفسك

-- من الدروس السابقة
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