Menu
CoddyTech

دالة: العثور على عنصر حسب المعرّف

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

challenge icon

التحدي

سهل

أضف دالة تبحث عن عنصر باستخدام معرّفه.

  1. احذف الأسطر الموجودة تحت -- Try it.
  2. اكتب local function findItem<T>(inventory: {Item<T>}, id: number): Item<T>? بحيث تُعيد العنصر الذي يطابق id، أو nil.
  3. تحت -- Try it، اطبع findItem(weapons, 99)، ثم خزّن findItem(weapons, 2) في local found واطبع found.name داخل if found then.

اضغط على تشغيل التعليمات البرمجية: يُظهر الناتج nil وFire Axe.

جرّب بنفسك

-- بنية العنصر المشتركة بين جميع قوائم الجرد
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}}
-- أنشئ عنصرًا باستخدام قيمة id المتاحة التالية، ثم خزّنه وأعِده
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}>} = {}
addItem(weapons, "Iron Sword", {damage = 25})
addItem(weapons, "Fire Axe", {damage = 40})
-- جرّبه
print(#weapons)
print(weapons[2].name)

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

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