Menu
Coddy logo textTech

Der 'if let'-Ausdruck

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

Manchmal müssen Sie nur auf ein bestimmtes Muster prüfen und kümmern sich nicht um alle anderen Möglichkeiten. Das Schreiben eines vollständigen match-Ausdrucks mit nur einem aussagekräftigen Zweig und einem Catch-all-_ kann sich wortreich anfühlen. Rust bietet if let als prägnantere Alternative für diese Situationen an.

Der if let-Ausdruck ermöglicht es Ihnen, Pattern Matching mit bedingter Logik in einer einzigen, lesbaren Anweisung zu kombinieren. Hier ist die grundlegende Syntax:

if let pattern = value {
    // Code, der ausgeführt wird, wenn das Muster übereinstimmt
}

Zum Beispiel, anstatt ein match mit nur einem nützlichen Arm zu schreiben:

let number = 5;

match number {
    5 => println!("Found five!"),
    _ => (), // tue nichts für andere Werte
}

Du kannst if let verwenden, um es sauberer zu gestalten:

let number = 5;

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

Der if let-Ausdruck führt den Codeblock nur aus, wenn das Muster übereinstimmt. Wenn es nicht übereinstimmt, passiert nichts – es ist kein expliziter „else“-Fall erforderlich, es sei denn, man möchte einen.

challenge icon

Aufgabe

Einfach

Sie erhalten eine Zahl als Eingabe. Lesen Sie die Eingabe ein, konvertieren Sie diese in eine Ganzzahl und verwenden Sie einen if let-Ausdruck, um zu prüfen, ob die Zahl genau 42 ist. Wenn sie übereinstimmt, geben Sie "The answer!" aus. Wenn sie nicht übereinstimmt, geben Sie nichts aus.

Anforderungen:

  • Verwenden Sie einen if let-Ausdruck, um zu prüfen, ob die Zahl gleich 42 ist
  • Wenn die Zahl 42 ist, geben Sie "The answer!" aus
  • Wenn die Zahl etwas anderes ist, geben Sie nichts aus

Eingabe: Eine einzelne Ganzzahl

Ausgabe: Geben Sie "The answer!" aus, wenn die Zahl 42 ist, ansonsten geben Sie nichts aus

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("Please enter a valid number");
    
    // TODO: Schreibe deinen Code unten
    // Verwende if let, um zu prüfen, ob number gleich 42 ist
    
}
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