Was ist ein 'Result'?
Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 42 von 66.
Während Option das Fehlen von Werten behandelt, bietet Rust ein weiteres Enum für ein anderes, aber ebenso wichtiges Szenario: Operationen, die fehlschlagen können. Lernen Sie Result<T, E> kennen – Rusts primäres Werkzeug zur Behandlung von behebbaren Fehlern.
Das Result-Enum hat zwei Varianten, die das Ergebnis einer Operation darstellen:
enum Result<T, E> {
Ok(T), // Erfolg - enthält das erfolgreiche Ergebnis
Err(E), // Fehler - enthält Fehlerinformationen
}Wenn eine Operation erfolgreich ist, gibt sie Ok(value) zurück, das das erfolgreiche Ergebnis enthält. Wenn sie fehlschlägt, gibt sie Err(error) zurück, das Informationen darüber enthält, was schiefgelaufen ist. Diese explizite Behandlung von Erfolgs- und Fehlerfällen macht Rust-Programme zuverlässiger und vorhersehbarer.
Sie werden Result überall in Rust begegnen – von Dateioperationen, die aufgrund fehlender Dateien fehlschlagen könnten, über Netzwerkanfragen, bei denen eine Zeitüberschreitung auftreten könnte, bis hin zu Parsing-Operationen, die ungültige Eingaben erhalten könnten. Im Gegensatz zu Sprachen, die Exceptions verwenden, zwingt Rust Sie dazu, anzuerkennen, dass Operationen fehlschlagen können, und beide Ergebnisse explizit zu behandeln.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Spickzettel
Das Result<T, E> Enum behandelt Operationen, die fehlschlagen können:
enum Result<T, E> {
Ok(T), // Erfolg - enthält das erfolgreiche Ergebnis
Err(E), // Fehler - enthält Fehlerinformationen
}Wenn eine Operation erfolgreich ist, gibt sie Ok(value) zurück. Wenn sie fehlschlägt, gibt sie Err(error) zurück.
Result wird für behebbare Fehler wie Dateioperationen, Netzwerkanfragen und Parsing-Operationen verwendet. Rust erfordert eine explizite Behandlung sowohl von Erfolgs- als auch von Fehlerfällen.
Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
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 erstellen7Fehlerbehandlung mit 'Result'
Was ist ein 'Result'?'match' mit 'Result' verwendenis_ok() und is_err()Abkürzungen: unwrap und expectDer Fragezeichen-Operator '?'Strings in Zahlen parsenZusammenfassung – Sichere Divisionsfunktion2Einfü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