Menu
Coddy logo textTech

is_some() et is_none()

Fait partie de la section Logic & Flow du Journey Rust de Coddy. Leçon 37 sur 66.

Parfois, vous devez vérifier si un Option contient une valeur sans réellement extraire cette valeur. Rust fournit deux méthodes pratiques pour cela : .is_some() et .is_none().

Les deux méthodes renvoient une valeur booléenne, ce qui les rend parfaites pour une utilisation dans des conditions if :

let maybe_score = Some(85);

if maybe_score.is_some() {
    println!("We have a score!");
}

if maybe_score.is_none() {
    println!("No score available");
}

La méthode .is_some() renvoie true si l'Option contient une valeur Some, et false si elle est None. La méthode .is_none() fonctionne de la manière opposée - elle renvoie true pour None et false pour Some.

challenge icon

Défi

Facile

Vous recevrez un nombre en entrée. Créez une Option<i32> qui contient Some(number) si le nombre est positif, ou None si le nombre est nul ou négatif. Utilisez .is_some() et .is_none() pour vérifier l'Option et afficher le message approprié.

Exigences :

  • Lire l'entrée et la convertir en i32
  • Créer une variable Option<i32> :
    • Si le nombre est positif (supérieur à 0), assignez Some(number)
    • Si le nombre est nul ou négatif, assignez None
  • Utilisez .is_some() pour vérifier si l'Option contient une valeur
  • Si .is_some() retourne true, affichez : Positive number detected
  • Utilisez .is_none() pour vérifier si l'Option est vide
  • Si .is_none() retourne true, affichez : No positive number

Entrée :

  • Un seul entier (par exemple, 42, 0, ou -5)

Sortie :

  • Si le nombre est positif : Positive number detected
  • Si le nombre est nul ou négatif : No positive number

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("Invalid input");
    
    // TODO: Écrivez votre code ci-dessous
    // Créer un Option<i32> selon que le nombre est positif ou non
    
    // Vérifier si l'Option est Some et afficher le message approprié
    
}
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

Entraînez-vous par vous-même : Compilateur Rust en ligne