Menu
CoddyTech

Função: Listar Tarefas por Status

Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 50 de 80.

challenge icon

Desafio

Fácil

Adicione uma função que seleciona tarefas pelo status.

  1. Exclua as linhas abaixo de -- Try it.
  2. Escreva local function filterTasks(list: {Task}, done: boolean): {Task} que retorna uma nova lista das tarefas cujo done é igual ao parâmetro.
  3. Abaixo de -- Try it, armazene filterTasks(tasks, false) em local pending e, em seguida, imprima #pending e pending[2].title.

Pressione Executar código: a saída mostra 2 e Build a task manager.

Experimente você mesmo

-- A estrutura que todas as tarefas no gerenciador seguem
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},
}
-- Crie uma tarefa com o próximo id disponível e adicione-a à lista
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
-- Marque a tarefa com este id como concluída; informe se alguma foi encontrada
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
-- Teste
print(completeTask(tasks, 1))
print(tasks[1].done)
print(completeTask(tasks, 99))

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

Pratique por conta própria: Compilador de Luau online