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 Allesfänger _ 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 Zweig 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, Sie möchten einen.

challenge icon

Aufgabe

Einfach

Sie erhalten eine Zahl als Eingabe. Lesen Sie die Eingabe ein, konvertieren Sie sie 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, andernfalls geben Sie nichts aus

Spickzettel

Der if let-Ausdruck bietet eine prägnante Möglichkeit, ein einzelnes Muster abzugleichen, ohne eine vollständige match-Anweisung zu schreiben.

Grundlegende Syntax:

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

Beispiel zum Vergleich von match und if let:

// Verwendung von match
let number = 5;
match number {
    5 => println!("Found five!"),
    _ => (), // nichts tun für andere Werte
}

// Verwendung von if let (prägnanter)
let number = 5;
if let 5 = number {
    println!("Found five!");
}

Der if let-Ausdruck wird nur ausgeführt, wenn das Muster übereinstimmt. Wenn es nicht übereinstimmt, passiert nichts, es sei denn, Sie fügen eine explizite else-Klausel hinzu.

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 die Zahl 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