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)

Попробуйте сами

-- Форма, которой должна соответствовать каждая задача в менеджере
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},
}

-- Создать типизированную задачу со следующим свободным 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

-- Напишите код здесь
-- 1) определите completeTask(list: {Task}, id: number): boolean
-- 2) выведите tasks[1].done, completeTask(tasks, 1), tasks[1].done,
--    и completeTask(tasks, 99)

Все уроки раздела Введение в Luau