Vérifier le stock
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 51 sur 66.
Défi
FacileVous recevrez quatre entrées. La première entrée est le nom d'un article à vérifier. La deuxième entrée est une liste de noms d'articles dans l'inventaire, séparés par des virgules. La troisième entrée est une liste de prix correspondant à chaque article, séparés par des virgules. La quatrième entrée est une liste de quantités correspondant à chaque article, séparées par des virgules. Construisez une HashMap pour stocker les données de l'inventaire où la clé est le nom de l'article et la valeur est un tuple contenant le prix et la quantité (f64, i32). Ensuite, vérifiez si l'article demandé existe dans l'inventaire en utilisant .get() et affichez les informations de stock appropriées.
Exigences :
- Importer
HashMapdepuisstd::collections - Lire la première entrée (nom de l'article à vérifier) et supprimer les espaces blancs (trim)
- Lire la deuxième entrée (noms d'articles séparés par des virgules) et supprimer les espaces blancs
- Lire la troisième entrée (prix séparés par des virgules) et supprimer les espaces blancs
- Lire la quatrième entrée (quantités séparées par des virgules) et supprimer les espaces blancs
- Créer une
HashMap<String, (f64, i32)>mutable pour l'inventaire - Diviser les noms d'articles par les virgules
- Diviser les prix par les virgules et analyser chacun en
f64 - Diviser les quantités par les virgules et analyser chacune en
i32 - Insérer chaque article dans l'inventaire avec son prix et sa quantité correspondants sous forme de tuple
- Utiliser
.get()pour vérifier si l'article demandé existe dans l'inventaire - Utiliser une expression
matchpour gérer l'Optionrenvoyée par.get() - Dans la branche
Some, extraire le prix et la quantité du tuple et afficher :[item_name] is in stockPrice: $[price]Quantity: [quantity]
- Dans la branche
None, afficher :[item_name] is not in stock
Entrée :
- Première ligne : Nom de l'article à vérifier (par ex.,
Laptop) - Deuxième ligne : Noms d'articles séparés par des virgules (par ex.,
Laptop,Mouse,Keyboard) - Troisième ligne : Prix séparés par des virgules (par ex.,
999.99,25.50,75.00) - Quatrième ligne : Quantités séparées par des virgules (par ex.,
15,50,30)
Sortie :
- Si l'article existe dans l'inventaire :
- Première ligne :
[item_name] is in stock - Deuxième ligne :
Price: $[price] - Troisième ligne :
Quantity: [quantity]
- Première ligne :
- Si l'article n'existe pas :
[item_name] is not in stock
Essayez vous-même
use std::collections::HashMap;
use std::io;
fn main() {
// Lire le nom de l'article à vérifier
let mut item_to_check = String::new();
io::stdin().read_line(&mut item_to_check).expect("Failed to read line");
let item_to_check = item_to_check.trim();
// Lire les noms d'articles séparés par des virgules
let mut items_input = String::new();
io::stdin().read_line(&mut items_input).expect("Failed to read line");
let items_input = items_input.trim();
// Lire les prix séparés par des virgules
let mut prices_input = String::new();
io::stdin().read_line(&mut prices_input).expect("Failed to read line");
let prices_input = prices_input.trim();
// Lire les quantités séparées par des virgules
let mut quantities_input = String::new();
io::stdin().read_line(&mut quantities_input).expect("Failed to read line");
let quantities_input = quantities_input.trim();
// TODO: Écrivez votre code ci-dessous
// Créer une HashMap pour stocker les données de l'inventaire
// Diviser les entrées et remplir la HashMap
// Utiliser .get() pour vérifier si l'article existe
// Utiliser match pour gérer l'Option et afficher la sortie appropriée
}Toutes les leçons de Logic & Flow
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final