Menu
Coddy logo textTech

Função para Alterar o Status da Tarefa

Parte da seção Introdução ao Luau do Journey de Lua da Coddy — lição 47 de 73.

challenge icon

Desafio

Fácil

Seu editor já contém o tipo Task, o array tasks e a função addTask das lições anteriores.

Crie uma função chamada completeTask que aceita dois parâmetros:

  • list do tipo {Task}
  • id do tipo number

A função deve:

  • percorrer a list com ipairs procurando por uma tarefa cujo id corresponda
  • se encontrada, definir o done dessa tarefa como true e retornar true
  • se nenhuma tarefa corresponder, retornar false (tipo de retorno boolean)

Em seguida, imprima, cada um em sua própria linha:

  1. a flag done da primeira tarefa (antes)
  2. o resultado de completeTask(tasks, 1)
  3. a flag done da primeira tarefa (depois)
  4. o resultado de completeTask(tasks, 99)

Experimente você mesmo

-- A forma que toda tarefa no gerenciador deve seguir
type Task = {
    id: number,
    title: string,
    done: boolean,
}

-- A lista de tarefas: um array tipado de formas 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},
}

-- Constrói uma tarefa tipada com o próximo id livre e a insere
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

-- Escreva o código aqui
-- 1) defina completeTask(list: {Task}, id: number): boolean
-- 2) imprima tasks[1].done, completeTask(tasks, 1), tasks[1].done,
--    e completeTask(tasks, 99)

Todas as lições de Introdução ao Luau