Código Final
Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 19 de 66.
Desafio
FácilVocê receberá quatro entradas representando um fluxo de trabalho completo de uma lista de tarefas: primeiro, uma lista de tarefas iniciais separadas por vírgulas; segundo, uma nova tarefa a ser adicionada; terceiro, o número de uma tarefa para visualizar (indexação baseada em 1); e quarto, o número de uma tarefa para remover (indexação baseada em 1). Crie um gerenciador de lista de tarefas completo que processe todas essas operações e exiba o estado final.
Requisitos:
- Leia a primeira entrada contendo descrições de tarefas separadas por vírgulas (ex:
Buy groceries,Call dentist,Finish homework) - Divida a string por vírgulas e crie um vetor mutável com essas tarefas iniciais
- Leia a segunda entrada e adicione esta nova tarefa ao vetor usando
.push() - Leia a terceira entrada, converta-a em um número inteiro (número da tarefa para visualizar, baseado em 1)
- Leia a quarta entrada, converta-a em um número inteiro (número da tarefa para remover, baseado em 1)
- Remova a tarefa especificada convertendo o índice baseado em 1 para baseado em 0 e usando
.remove() - Imprima
Total tasks: Xonde X é o número final de tarefas - Imprima
Viewing task: Yonde Y é o número da tarefa que foi solicitado para visualizar - Itere pela lista de tarefas final e imprima cada tarefa com seu número (baseado em 1)
- Para a tarefa que corresponde ao número de visualização (após os ajustes de remoção), imprima:
[X] [task description] (selected) - Para todas as outras tarefas, imprima:
[X] [task description]
Entrada:
- Primeira linha: Descrições de tarefas separadas por vírgulas (ex:
Buy groceries,Call dentist,Finish homework) - Segunda linha: Uma nova tarefa para adicionar (ex:
Study for exam) - Terceira linha: Um número inteiro representando o número da tarefa para visualizar (indexação baseada em 1)
- Quarta linha: Um número inteiro representando o número da tarefa para remover (indexação baseada em 1)
Saída:
- Primeira linha:
Total tasks: Xonde X é o número final de tarefas - Segunda linha:
Viewing task: Yonde Y é o número de visualização solicitado - Linhas seguintes: Cada tarefa com seu número no formato
[X] [task description] - A tarefa selecionada (correspondente ao número de visualização) deve ter
(selected)anexado
Experimente você mesmo
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// Ler as tarefas iniciais separadas por vírgula
let initial_tasks = lines.next().unwrap().unwrap();
// Ler a nova tarefa para adicionar
let new_task = lines.next().unwrap().unwrap();
// Ler o número da tarefa para visualizar (baseado em 1)
let view_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
// Ler o número da tarefa para remover (baseado em 1)
let remove_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
// TODO: Escreva seu código abaixo
// 1. Dividir initial_tasks por vírgulas e criar um vetor mutável
// 2. Adicionar a new_task ao vetor
// 3. Remover a tarefa em remove_number (converter para índice baseado em 0)
// 4. Imprimir o total de tarefas e as informações da tarefa visualizada
// 5. Iterar pela lista final e imprimir cada tarefa
}Todas as lições de Logic & Flow
1Fluxo de Controle Avançado
A Expressão 'match'Correspondência de Múltiplos ValoresCorrespondência de IntervalosA Expressão 'if let'Loops como ExpressõesRecapitulação - Parser de Comandos Simples4Agrupando Dados com Structs
O que é uma Struct?Visão Geral de StructsAcessando Campos de uma StructStructs MutáveisStructs como Parâmetros de FunçãoTuple StructsRecapitulação - Criando uma Struct Book2Introdução a Vetores
O que é um Vetor?Criando um VetorAdicionando Elementos com pushAcessando Elementos do VetorIterando sobre um VetorIteração MutávelRemovendo ElementosRecapitulação - Rastreador de Pontuação Básico5Pares Chave-Valor com Hash Maps
O que é um Hash Map?Criando um Hash MapInserindo Pares Chave-ValorAcessando ValoresIterando sobre um Hash MapAtualizando um ValorRemovendo um ParRecapitulação - Contador de Palavras8Projeto: Inventário Simples de Itens
Configuração do ProjetoAdicionando um ItemVerificando o EstoqueVendendo um ItemJuntando tudo3Lista de Tarefas via Linha de Comando
Configuração do ProjetoAdicionando uma TarefaVisualizando Todas as TarefasRemovendo uma TarefaCódigo Final