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.
Desafio
FácilSeu 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:
listdo tipo{Task}iddo tiponumber
A função deve:
- percorrer a
listcomipairsprocurando por uma tarefa cujoidcorresponda - se encontrada, definir o
donedessa tarefa comotruee retornartrue - se nenhuma tarefa corresponder, retornar
false(tipo de retornoboolean)
Em seguida, imprima, cada um em sua própria linha:
- a flag
doneda primeira tarefa (antes) - o resultado de
completeTask(tasks, 1) - a flag
doneda primeira tarefa (depois) - 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
1Começando com o Luau
O que é Luau?Por que usar Luau?Seu primeiro código em LuauVerificação de tipos e modos de erroRecapitulando: Introdução ao Luau4Trabalhando com Funções
Tipando Parâmetros e Valores de RetornoTipando Funções AnônimasFunções que Não Retornam NadaParâmetros OpcionaisValores Padrão para ParâmetrosFunções VariádicasDefinindo Tipos de FunçõesRecapitulação: Funções Tipadas7Projeto: Gerenciador de Tarefas Tipado
Projeto: O Formato da TarefaFunção para Adicionar uma Tarefa2Tipos Fundamentais
Tipos Básicos: num, str, boolO Tipo 'any': Escape HatchO Tipo 'unknown'Tipos Nil e OpcionaisInferência de Tipos na PráticaAnotações Explícitas de TiposReciclagem: Prática de Tipos Fundamentais5Aliases, Uniões, Interseções
Aliases de Tipos para PrimitivosTipos de UniãoTrabalhando com Tipos de UniãoTipos LiteraisTipos de InterseçãoCombinando Aliases de TiposRecapitulando: Combinações Avançadas de Tipos3Tabelas Tipadas: Arrays e Maps
Arrays TipadosAdicionando e Lendo ElementosO que é um Tipo Map?Declarando e Acessando MapsIterando Sobre TabelasTabelas de Formato MistoArrays Tipados Multidimensionaistable.unpack e VarargsRecapitulando: Arrays e Maps