Menu
Coddy logo textTech

Der 'if let'-Ausdruck

Teil des Abschnitts Logik & Kontrollfluss der Rust-Journey von Coddy. Lektion 4 von 66.

Manchmal musst du nur nach einem bestimmten Muster suchen und dich nicht um all die anderen Möglichkeiten kümmern. Einen vollständigen match-Ausdruck mit nur einem aussagekräftigen Arm und einem alles abfangenden _ zu schreiben, kann sich umständlich anfühlen. Rust bietet für diese Situationen if let als eine knappere Alternative.

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

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

Zum Beispiel, statt 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 übersichtlicher zu machen:

let number = 5;

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

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

challenge icon

Aufgabe

Einfach

Du erhältst eine Zahl als Eingabe. Lies die Eingabe ein, wandle sie in eine Ganzzahl um und verwende einen if let-Ausdruck, um zu prüfen, ob die Zahl genau 42 ist. Wenn sie übereinstimmt, gib "The answer!" aus. Wenn sie nicht übereinstimmt, gib nichts aus.

Anforderungen:

  • Verwende einen if let-Ausdruck, um zu prüfen, ob die Zahl 42 entspricht
  • Wenn die Zahl 42 ist, gib "The answer!" aus
  • Wenn die Zahl etwas anderes ist, gib nichts aus

Eingabe: Eine einzelne Ganzzahl

Ausgabe: Gib "The answer!" aus, wenn die Zahl 42 ist, andernfalls gib 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 darunter
    // 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 Logik & Kontrollfluss

Übe selbstständig: Online-Rust-Compiler