Vérifier le stock
Fait partie de la section Logique & Flux 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 séparés par des virgules dans l’inventaire. La troisième entrée est une liste de prix séparés par des virgules correspondant à chaque article. La quatrième entrée est une liste de quantités séparées par des virgules correspondant à chaque article. Créez un 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). Vérifiez ensuite si l’article demandé existe dans l’inventaire à l’aide de .get() et affichez les informations appropriées sur le stock.
Exigences :
- Importez
HashMapdepuisstd::collections - Lisez la première entrée (nom de l’article à vérifier) et supprimez les espaces superflus
- Lisez la deuxième entrée (noms d’articles séparés par des virgules) et supprimez les espaces superflus
- Lisez la troisième entrée (prix séparés par des virgules) et supprimez les espaces superflus
- Lisez la quatrième entrée (quantités séparées par des virgules) et supprimez les espaces superflus
- Créez un
HashMap<String, (f64, i32)>mutable pour l’inventaire - Séparez les noms des articles au niveau des virgules
- Séparez les prix au niveau des virgules et convertissez chacun en
f64 - Séparez les quantités au niveau des virgules et convertissez chacune en
i32 - Insérez chaque article dans l’inventaire avec son prix et sa quantité correspondants sous forme de tuple
- Utilisez
.get()pour vérifier si l’article demandé existe dans l’inventaire - Utilisez une expression
matchpour traiter leOptionrenvoyé par.get() - Dans le bras
Some, extrayez le prix et la quantité du tuple et affichez :[item_name] is in stockPrice: $[price]Quantity: [quantity]
- Dans le bras
None, affichez :[item_name] is not in stock
Entrée :
- Première ligne : nom de l’article à vérifier (par exemple,
Laptop) - Deuxième ligne : noms d’articles séparés par des virgules (par exemple,
Laptop,Mouse,Keyboard) - Troisième ligne : prix séparés par des virgules (par exemple,
999.99,25.50,75.00) - Quatrième ligne : quantités séparées par des virgules (par exemple,
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 Logique & Flux
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 finalEntraînez-vous par vous-même : Compilateur Rust en ligne