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

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