Configuração do Projeto
Parte da seção Lógica & Fluxo do Journey de GO da Coddy — lição 20 de 68.
Desafio
FácilAo longo das próximas lições, você construirá um aplicativo simples de lista de tarefas por linha de comando que permite aos usuários adicionar, visualizar, concluir e remover tarefas.
Neste desafio, você criará a base para um sistema de gerenciamento de tarefas configurando a estrutura de dados básica e a interface do usuário. Este é o primeiro passo na construção de um aplicativo de lista de tarefas completo que crescerá ao longo do projeto.
Você receberá duas entradas:
- Uma string representando o nome do aplicativo (ex:
"MyTasks") - Uma string representando o nome do usuário (ex:
"Alice")
Sua tarefa é:
- Definir uma struct
Taskcom dois campos:Name(string) - a descrição da tarefaCompleted(bool) - se a tarefa está finalizada
- Criar um slice de structs
Taskpara manter sua lista de tarefas (inicialmente vazio) - Exibir uma mensagem de boas-vindas no formato:
"Welcome to [app_name], [user_name]!" - Exibir um menu com as seguintes opções, cada uma em uma linha separada:
"1. Add Task""2. View Tasks""3. Complete Task""4. Remove Task""5. Exit"
- Imprimir o número atual de tarefas no formato:
"Current tasks: [count]"
Este desafio estabelece a estrutura central que suportará todas as funcionalidades futuras em seu sistema de gerenciamento de tarefas. A struct Task será o bloco de construção para armazenar tarefas individuais, enquanto o slice gerenciará sua coleção de tarefas. O menu fornece uma interface clara para os usuários entenderem quais ações podem realizar.
Experimente você mesmo
package main
import "fmt"
func main() {
// Ler entrada
var appName string
var userName string
fmt.Scanln(&appName)
fmt.Scanln(&userName)
// TODO: Escreva seu código abaixo
// Definir a struct Task
// Criar um slice de structs Task
// Exibir mensagem de boas-vindas e menu
// Imprimir a contagem atual de tarefas
}Todas as lições de Lógica & Fluxo
1Fluxo de Controle Avançado
Switch com `fallthrough`Interrompendo Loops AninhadosContinuando um Loop EspecíficoA Instrução `goto`Recapitulação - Controle de Loop Avançado4Projeto: Lista de Tarefas Simples
Configuração do ProjetoAdicionando uma Tarefa2Structs e Métodos
Definindo Métodos em StructsRecebedores de ValorRecebedores de PonteiroEscolhendo RecebedoresMétodos vs FunçõesRecapitulação - Comportamento de Structs5Mapas em Profundidade
Mapas de StructsPonteiros como Valores de MapVerificando Mapas NilComparando MapasRecapitulação - Contador de Frequência de Palavras3Interfaces (O Básico)
O que é uma Interface?Definindo uma InterfaceImplementando uma InterfaceUsando Tipos de InterfaceInterface VaziaAsserções de TipoType SwitchRecapitulação - Formas e Comportamentos