rust / beginner
Snippet
Result-Typ für Fehlerweiterleitung
Result<T, E> ist Rusts Art, Operationen zu behandeln, die fehlschlagen können. Im Gegensatz zu Option<T>, das potenziell fehlende Werte repräsentiert, steht Result für Operationen, die mit einem Fehler fehlschlagen können. Die Ok-Variante enthält den Erfolgswert, während Err Fehlerinformationen enthält.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fn divide(a: f64, b: f64) -> Result<f64, String> {if b == 0.0 {return Err(String::from("Division by zero"));}Ok(a / b)}fn main() {match divide(10.0, 2.0) {Ok(result) => println!("Result: {}", result),Err(e) => println!("Error: {}", e),}let result = divide(5.0, 0.0).unwrap_or(-1.0);println!("Safe result: {}", result);}
Erklärung
1
Result<f64, String>
Rückgabetyp, der Erfolg (f64) oder Fehlschlag (String-Fehler) anzeigt
2
return Err(String::from(...));
Gibt einen Fehler zurück, der in die Err-Variante gewrappt ist
3
.unwrap_or(-1.0)
Extrahiert Wert oder gibt Standardwert zurück bei Err