Menu
Coddy logo textTech

is_some() und is_none()

Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 37 von 66.

Manchmal müssen Sie prüfen, ob ein Option einen Wert enthält, ohne diesen Wert tatsächlich zu extrahieren. Rust bietet hierfür zwei praktische Methoden an: .is_some() und .is_none().

Beide Methoden geben einen booleschen Wert zurück, was sie perfekt für die Verwendung in if-Bedingungen macht:

let maybe_score = Some(85);

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

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

Die Methode .is_some() gibt true zurück, wenn das Option einen Some-Wert enthält, und false, wenn es None ist. Die Methode .is_none() funktioniert genau umgekehrt – sie gibt true für None und false für Some zurück.

challenge icon

Aufgabe

Einfach

Sie erhalten eine Zahl als Eingabe. Erstellen Sie ein Option<i32>, das Some(number) enthält, wenn die Zahl positiv ist, oder None, wenn die Zahl Null oder negativ ist. Verwenden Sie .is_some() und .is_none(), um das Option zu prüfen und die entsprechende Nachricht auszugeben.

Anforderungen:

  • Lesen Sie die Eingabe ein und konvertieren Sie diese in i32
  • Erstellen Sie eine Option<i32> Variable:
    • Wenn die Zahl positiv ist (größer als 0), weisen Sie Some(number) zu
    • Wenn die Zahl Null oder negativ ist, weisen Sie None zu
  • Verwenden Sie .is_some(), um zu prüfen, ob das Option einen Wert enthält
  • Wenn .is_some() den Wert true zurückgibt, geben Sie aus: Positive number detected
  • Verwenden Sie .is_none(), um zu prüfen, ob das Option leer ist
  • Wenn .is_none() den Wert true zurückgibt, geben Sie aus: No positive number

Eingabe:

  • Eine einzelne Ganzzahl (z. B. 42, 0 oder -5)

Ausgabe:

  • Wenn die Zahl positiv ist: Positive number detected
  • Wenn die Zahl Null oder negativ ist: No positive number

Spickzettel

Verwenden Sie .is_some(), um zu prüfen, ob ein Option einen Wert enthält:

let maybe_score = Some(85);

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

Verwenden Sie .is_none(), um zu prüfen, ob ein Option leer ist:

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

Beide Methoden geben boolesche Werte zurück (true oder false).

Probier es selbst

use std::io;

fn main() {
    // Eingabe lesen
    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: Schreibe deinen Code unten
    // Erstelle ein Option<i32> basierend darauf, ob die Zahl positiv ist
    
    // Überprüfe, ob die Option Some ist und gib die entsprechende Nachricht aus
    
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow