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

دالة لتغيير حالة المهمة

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

challenge icon

التحدي

سهل

محررك يحتوي بالفعل على النوع Task والمصفوفة tasks والدالة addTask من الدروس السابقة.

أنشئ دالة باسم completeTask تأخذ معامِلَين:

  • list من النوع {Task}
  • id من النوع number

يجب على الدالة أن تقوم بـ:

  • التكرار على list باستخدام ipairs للبحث عن task يتطابق id الخاص به
  • إذا تم العثور عليه، قم بتعيين done الخاص بهذا الـ task إلى true وإرجاع true
  • إذا لم يتطابق أي task، أرجع false (نوع الإرجاع boolean)

ثم اطبع، كل منها في سطر منفصل:

  1. علامة done الخاصة بأول task (قبل)
  2. نتيجة completeTask(tasks, 1)
  3. علامة done الخاصة بأول task (بعد)
  4. نتيجة completeTask(tasks, 99)

جرّب بنفسك

-- الشكل الذي يجب أن تتبعه كل مهمة في المدير
type Task = {
    id: number,
    title: string,
    done: boolean,
}

-- قائمة المهام: مصفوفة مكتوبة من أشكال Task
local tasks: {Task} = {
    {id = 1, title = "Learn Luau types", done = false},
    {id = 2, title = "Build a task manager", done = false},
    {id = 3, title = "Write tests", done = true},
}

-- أنشئ مهمة مكتوبة بالمعرّف الحر التالي وأدرجها
local function addTask(list: {Task}, title: string): Task
    local newTask: Task = {
        id = #list + 1,
        title = title,
        done = false,
    }
    table.insert(list, newTask)
    return newTask
end

-- اكتب الكود هنا
-- 1) عرّف completeTask(list: {Task}, id: number): boolean
-- 2) اطبع tasks[1].done, completeTask(tasks, 1), tasks[1].done,
--    و completeTask(tasks, 99)

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

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