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.
Aufgabe
EinfachSie 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 gleich42ist - Wenn die Zahl
42ist, 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
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logic & Flow
1Fortgeschrittener Kontrollfluss
Der 'match'-AusdruckAbgleichen mehrerer WerteBereiche abgleichenDer 'if let'-AusdruckSchleifen als AusdrückeRückblick – Einfacher Befehls-Parser4Daten gruppieren mit Structs
Was ist ein Struct?Übersicht über StructsZugriff auf Struct-FelderVeränderbare StructsStructs als FunktionsparameterTupel-StructsZusammenfassung – Ein Buch-Struct erstellen2Einführung in Vektoren
Was ist ein Vektor?Einen Vektor erstellenElemente mit push hinzufügenZugriff auf Vektor-ElementeÜber einen Vektor iterierenVeränderliche IterationElemente entfernenZusammenfassung – Einfacher Score-Tracker5Schlüssel-Wert-Paare mit Hash Maps
Was ist eine Hash Map?Erstellen einer Hash MapEinfügen von Schlüssel-Wert-PaarenZugreifen auf WerteIterieren über eine Hash MapAktualisieren eines WertesEntfernen eines PaaresZusammenfassung – Wortzähler8Projekt: Einfaches Artikelinventar
Projekt-SetupEinen Artikel hinzufügenLagerbestand prüfenEinen Artikel verkaufenAlles zusammenfügen11Abschluss-Herausforderungen
Wiederholung - Einzigartige ElementeWiederholung - Benutzerprofil-ValidatorWiederholung - Noten-Zusammenfassung3Kommandozeilen-To-Do-Liste
Projekt-SetupEine Aufgabe hinzufügenAlle Aufgaben anzeigenEine Aufgabe entfernenFinaler Code