Menu
Coddy logo textTech

פונקציה לשינוי סטטוס המשימה

חלק מהיחידה מבוא ל-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)

נסו בעצמכם

-- The shape every task in the manager must follow
type Task = {
    id: number,
    title: string,
    done: boolean,
}

-- The task list: a typed array of Task shapes
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},
}

-- Build a typed task with the next free id and insert it
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

-- Add a task and inspect what came back
local added: Task = addTask(tasks, "Review the code")
print(#tasks)
print(added.id)
print(added.title)
print(added.done)

כל השיעורים ביחידה מבוא ל-Luau

תרגלו בעצמכם: קומפיילר Luau אונליין