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,
// ... autres motifs
_ => default_expression,
}Le mot-clé match est suivi de la valeur que tu veux tester.
Chaque branche du match se compose d’un motif suivi de => et du code à exécuter.
Le trait de soulignement _ est le cas par défaut, qui correspond à tout ce qui ne correspond à aucun autre motif.
Voici un exemple :
let day = 3;
let day_name = match day {
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
// ... d'autres motifs,
_ => "Invalid day",
};Pour plusieurs lignes de code dans une branche, utilise 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 vérifiera cela pour toi.
Défi
DébutantCrée un programme qui prend un numéro de mois (1 pour janvier, 2 pour février, etc.) et affiche la saison correspondante. Utilise une instruction match pour la logique.
Les saisons et les mois correspondants sont :
"Winter": décembre (12), janvier (1), février (2)"Spring": mars (3), avril (4), mai (5)"Summer": juin (6), juillet (7), août (8)"Autumn": septembre (9), octobre (10), novembre (11)
Assigne ces chaînes exactes en anglais à season, afin que le programme affiche, par exemple, status = Spring.
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 modifiez 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