Avatar ·

Sauberer Weg, um Result in Option in Rust zu konvertieren

Hallo Kollegen! Ich habe gerade angefangen, Rust zu lernen und bin auf eine typische Situation gestoßen: Ich habe eine Funktion, die `Result` zurückgibt, aber für die weitere Arbeit brauche ich `Option`. Zum Beispiel lese ich eine Umgebungsvariable: ```rust use std::env; fn main() { let port: Option = env::var("PORT") // Result .and_then(|s| s.parse()) // Result .ok(); // ??? } ``` Ich weiß, dass man `.ok()` verwenden kann, das `Result` in `Option` umwandelt, indem der Fehler verworfen wird. Aber mir scheint das kein sehr sauberer Ansatz zu sein – wir verlieren die Fehlerinformationen. Gibt es vielleicht einen idiomatischeren Weg? Das zweite Problem: Ich habe eine Kette von Aufrufen mit mehreren `Result` und möchte sie in `Option` umwandeln.