Agregar un artículo
Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 50 de 66.
Desafío
FácilRecibirás tres entradas. La primera entrada es el nombre de un artículo, la segunda entrada es el precio del artículo y la tercera entrada es la cantidad inicial en stock. Crea un HashMap para almacenar los datos del inventario donde la clave sea el nombre del artículo y el valor sea una tupla que contenga el precio y la cantidad (f64, i32). Agrega el artículo al inventario e imprime un mensaje de confirmación seguido de los detalles actuales del inventario.
Requisitos:
- Importa
HashMapdestd::collections - Lee la primera entrada (nombre del artículo) y elimina los espacios en blanco
- Lee la segunda entrada (precio) y elimina los espacios en blanco
- Convierte el precio a
f64 - Lee la tercera entrada (cantidad) y elimina los espacios en blanco
- Convierte la cantidad a
i32 - Crea un
HashMap<String, (f64, i32)>mutable para el inventario - Inserta el artículo en el inventario con el precio y la cantidad como una tupla
- Imprime:
Added [item_name] to inventory - Imprime:
Price: $[price] - Imprime:
Quantity: [quantity]
Entrada:
- Primera línea: Nombre del artículo (por ejemplo,
Laptop) - Segunda línea: Precio como un número (por ejemplo,
999.99) - Tercera línea: Cantidad como un número (por ejemplo,
15)
Salida:
- Primera línea:
Added [item_name] to inventory - Segunda línea:
Price: $[price] - Tercera línea:
Quantity: [quantity]
Pruébalo tú mismo
use std::collections::HashMap;
use std::io;
fn main() {
// Leer el nombre del artículo
let mut item_name = String::new();
io::stdin().read_line(&mut item_name).expect("Failed to read line");
let item_name = item_name.trim().to_string();
// Leer el precio
let mut price_input = String::new();
io::stdin().read_line(&mut price_input).expect("Failed to read line");
let price: f64 = price_input.trim().parse().expect("Failed to parse price");
// Leer la cantidad
let mut quantity_input = String::new();
io::stdin().read_line(&mut quantity_input).expect("Failed to read line");
let quantity: i32 = quantity_input.trim().parse().expect("Failed to parse quantity");
// TODO: Escribe tu código a continuación
// Crear un HashMap para almacenar el inventario
// Añadir el artículo al inventario
// Imprimir los mensajes de confirmación
}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