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.
Aufgabe
EinfachDu 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 Zahl42entspricht - Wenn die Zahl
42ist, 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
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Kontrollfluss
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Übe selbstständig: Online-Rust-Compiler