Instruction Match
Fait partie de la section Fondamentaux du Journey Rust de Coddy. Leçon 26 sur 75.
L’expression match vous permet de comparer une valeur à une série de motifs et d’exécuter du code en fonction du motif correspondant.
Voici la structure de base d’une expression match :
match variable {
pattern1 => expression1,
pattern2 => expression2,
// ... plus de motifs
_ => default_expression,
}Le mot-clé match est suivi de la valeur que vous souhaitez tester.
Chaque branche de match se compose d’un motif suivi de => et du code à exécuter.
Le caractère de soulignement _ est le cas par défaut qui correspond à tout ce qui ne correspond pas aux autres motifs.
Voici un exemple :
let day = 3;
let day_name = match day {
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
// ... plus de motifs,
_ => "Invalid day",
};Pour plusieurs lignes de code dans un bras, utilisez un bloc :
let day = 3;
let day_name = match day {
1 => {
println!("First day of the week!");
"Monday"
},
2 => "Tuesday",
// ... autres cas
_ => "Invalid day",
};Vous pouvez faire correspondre plusieurs motifs à l’aide de | :
let day = 3;
let day_type = match day {
1 | 2 | 3 | 4 | 5 => "Weekday",
6 | 7 => "Weekend",
_ => "Invalid day",
};Les expressions match en Rust doivent être exhaustives, ce qui signifie qu’elles doivent couvrir toutes les valeurs possibles. Le compilateur le vérifiera pour vous.
Défi
DébutantCréez un programme qui prend un numéro de mois (1 pour janvier, 2 pour février, etc.) et affiche la saison à laquelle il appartient. Utilisez une instruction match pour la logique.
Les saisons et leurs mois correspondants sont :
- Hiver : décembre (12), janvier (1), février (2)
- Printemps : mars (3), avril (4), mai (5)
- Été : juin (6), juillet (7), août (8)
- Automne : septembre (9), octobre (10), novembre (11)
Essayez vous-même
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let month: i32 = input.trim().parse().unwrap();
// Écrivez votre code ci-dessous
let season =
// Ne changez pas la ligne ci-dessous
println!("status = {}", season);
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesOpérateurs de comparaisonComparaison de chaînes7Entrées/Sorties de base
Afficher dans la consoleLire la saisie utilisateurRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 33Variables - Partie 2
Déclaration de typeConventions de nommageInférence de typeRécapitulatif - Initialiser des variablesConversion de type9Boucles
Boucle For sur une sérieBoucle WhileBreakContinueBoucles imbriquéesÉtiquettes de boucleBoucle infinieRécapitulatif - Entrée dynamique12Bases des tableaux
Déclaration de tableauxTableau comme paramètreAccès aux élémentsModification de tableauxRécapitulatif - Affichage formaté d'un tableau15Opérations sur les chaînes
Méthodes de chaînesMacro format!Conversion de chaînesRécapitulatif - FormatEntraînez-vous par vous-même : Compilateur Rust en ligne