Menu
Coddy logo textTech

L'expression 'if let'

Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 4 sur 66.

Parfois, vous n'avez besoin de vérifier qu'un seul motif spécifique et vous ne vous souciez pas de toutes les autres possibilités. Écrire une expression match complète avec une seule branche significative et un motif universel _ peut sembler verbeux. Rust propose if let comme une alternative plus concise pour ces situations.

L'expression if let vous permet de combiner le filtrage par motif (pattern matching) avec une logique conditionnelle dans une seule instruction lisible. Voici la syntaxe de base :

if let pattern = value {
    // code à exécuter si le motif correspond
}

Par exemple, au lieu d'écrire un match avec un seul bras utile :

let number = 5;

match number {
    5 => println!("Found five!"),
    _ => (), // ne rien faire pour les autres valeurs
}

Vous pouvez utiliser if let pour rendre le code plus propre :

let number = 5;

if let 5 = number {
    println!("Found five!");
}

L'expression if let n'exécute le bloc de code que lorsque le motif correspond. Si cela ne correspond pas, rien ne se passe - il n'est pas nécessaire d'avoir un cas « else » explicite, à moins que vous n'en vouliez un.

challenge icon

Défi

Facile

Vous recevrez un nombre en entrée. Lisez l'entrée, convertissez-la en un entier et utilisez une expression if let pour vérifier si le nombre est exactement 42. S'il correspond, affichez "The answer!". S'il ne correspond pas, n'affichez rien.

Exigences :

  • Utilisez une expression if let pour vérifier si le nombre est égal à 42
  • Si le nombre est 42, affichez "The answer!"
  • Si le nombre est n'importe quoi d'autre, n'affichez rien

Entrée : Un seul entier

Sortie : Affichez "The answer!" si le nombre est 42, sinon n'affichez rien

Essayez vous-même

use std::io;

fn main() {
    // Lire l'entrée
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let number: i32 = input.trim().parse().expect("Please enter a valid number");
    
    // TODO: Écrivez votre code ci-dessous
    // Utilisez if let pour vérifier si number est égal à 42
    
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow