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 بحثًا عن مهمة يتطابق فيها id
  • إذا عثرت عليها، عيّن قيمة done لتلك المهمة إلى true وأعد true
  • إذا لم تتطابق أي مهمة، فأعد false (نوع الإرجاع boolean)

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

  1. علامة done للمهمة الأولى (قبل)
  2. نتيجة completeTask(tasks, 1)
  3. علامة done للمهمة الأولى (بعد)
  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 عبر الإنترنت