Avatar ·

Wie konvertiert man Option in Result in Rust ohne Verwendung von Makros?

Hallo zusammen. Ich lerne Rust und bin auf ein Problem bei der Konvertierung von `Option` in `Result` gestoßen. Oft habe ich in meinem Code die Situation, dass ich ein `Option` von einer Funktion erhalte (z.B. von einem Iterator oder einer Hash-Map), aber ich muss ein `Result` zurückgeben, um das Fehlen eines Werts als Fehler zu behandeln. Bisher mache ich das mit match oder if let, aber das sieht umständlich aus. Zum Beispiel: ```rust fn find_user(id: u32) -> Result { let users = get_users(); match users.iter().find(|u| u.id == id) { Some(user) => Ok(user.clone()), None => Err("User not found".to_string()), } } ``` Ich weiß, dass man ein Makro schreiben kann, aber mich interessiert: Gibt es eine eingebaute Möglichkeit, dies ohne Schreiben eines eigenen Makros zu tun? Gibt es etwas in der Standardbibliothek?

Noch keine Antworten.

Anmelden um eine Antwort zu hinterlassen

Blogs