Ver todas las tareas
Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 17 de 66.
Desafío
FácilRecibirás dos entradas: primero, una lista de tareas existentes separadas por comas, y segundo, un número de tarea para visualizar (indexación basada en 1). Lee ambas entradas, crea un vector a partir de las tareas y muestra todas las tareas con sus números, resaltando la tarea solicitada.
Requisitos:
- Lee la primera entrada que contiene descripciones de tareas separadas por comas (por ejemplo,
Buy groceries,Call dentist,Finish homework) - Divide la cadena por comas para obtener las tareas individuales
- Crea un vector y añade cada tarea a él
- Lee la segunda entrada y conviértela en un entero (el número de tarea a resaltar, usando indexación basada en 1)
- Imprime el número total de tareas en el formato:
Total tasks: X - Itera a través del vector e imprime cada tarea con su número (basado en 1)
- Para el número de tarea solicitado, imprímelo en el formato:
[X] [task description] (selected) - Para todas las demás tareas, imprímelas en el formato:
[X] [task description]
Entrada:
- Primera línea: Descripciones de tareas separadas por comas (por ejemplo,
Buy groceries,Call dentist,Finish homework) - Segunda línea: Un entero que representa el número de tarea a resaltar (indexación basada en 1)
Salida:
- Primera línea:
Total tasks: Xdonde X es el número total de tareas - Líneas siguientes: Cada tarea con su número en el formato
[X] [task description] - La tarea seleccionada debe tener
(selected)añadido al final
Pruébalo tú mismo
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// Leer las tareas separadas por comas
let tasks_input = lines.next().unwrap().unwrap();
// Leer el número de tarea a resaltar
let task_number: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
// TODO: Escribe tu código a continuación
// Dividir tasks_input por comas y crear un vector
// Imprimir el número total de tareas
// Iterar a través de las tareas e imprimir cada una con su número
// Resaltar la tarea seleccionada añadiendo " (selected)"
}Todas las lecciones de Logic & Flow
1Flujo de control avanzado
La expresión 'match'Coincidencia de múltiples valoresCoincidencia de rangosLa expresión 'if let'Bucles como expresionesResumen - Analizador de comandos simple4Agrupando datos con Structs
¿Qué es un Struct?Visión general de los StructsAcceso a los campos de un StructStructs mutablesStructs como parámetros de funcionesStructs de tuplaResumen - Crear un Struct de Libro7Manejo de errores con 'Result'
¿Qué es un 'Result'?Uso de 'match' con 'Result'is_ok() e is_err()Atajos: unwrap y expectEl operador de signo de interrogación '?'Parsing de Strings a númerosResumen - Función de división segura10Closures y funciones anónimas
¿Qué es un Closure?Definir un Closure simpleClosures con parámetrosCapturar el entornoResumen - Closure sumador simple2Introducción a los vectores
¿Qué es un vector?Crear un vectorAñadir elementos con pushAcceder a los elementos de un vectorIterar sobre un vectorIteración mutableEliminar elementosResumen: Rastreador de puntuación básico5Pares clave-valor con Hash Maps
¿Qué es un Hash Map?Crear un Hash MapInsertar pares clave-valorAcceder a los valoresIterar sobre un Hash MapActualizar un valorEliminar un parRepaso: Contador de palabras8Proyecto: Inventario simple de artículos
Configuración del proyectoAgregar un artículoVerificar el stockVender un artículoUniendo todo3Lista de tareas en la línea de comandos
Configuración del proyectoAñadir una tareaVer todas las tareasEliminar una tareaCódigo final