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