Menu
CoddyTech

دالة: عرض المهام حسب الحالة

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

challenge icon

التحدي

سهل

أضف دالة تختار المهام حسب حالتها.

  1. احذف الأسطر الموجودة تحت -- Try it.
  2. اكتب local function filterTasks(list: {Task}, done: boolean): {Task} بحيث تُعيد قائمة جديدة بالمهام التي تساوي قيمة done فيها قيمة المُعامل.
  3. تحت -- Try it، خزّن filterTasks(tasks, false) في local pending، ثم اطبع #pending وpending[2].title.

اضغط على Run Code: يُظهر الناتج 2 وBuild a task manager.

جرّب بنفسك

-- البنية التي تتبعها كل مهمة في المدير
type Task = {
    id: number,
    title: string,
    done: boolean,
}
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},
}
-- أنشئ مهمة باستخدام قيمة id المتاحة التالية وأضفها إلى القائمة
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
-- حدّد المهمة التي تحمل قيمة id هذه على أنها مكتملة؛ واذكر ما إذا عُثر عليها
local function completeTask(list: {Task}, id: number): boolean
    for _, t in ipairs(list) do
        if t.id == id then
            t.done = true
            return true
        end
    end
    return false
end
-- جرّب ذلك
print(completeTask(tasks, 1))
print(tasks[1].done)
print(completeTask(tasks, 99))

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

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