rust / intermediate
Snippet
Fehlerfortpflanzung mit dem ?-Operator
Der '?' Operator ist eine prägnante Art, Fehler zu behandeln. Wenn ein Result ein 'Err' ist, kehrt die Funktion vorzeitig mit diesem Fehler zurück; andernfalls wird der 'Ok'-Wert entpackt.
snippet.rs
1
2
3
4
5
6
7
8
9
use std::fs::File;use std::io::{self, Read};fn read_username() -> Result<String, io::Error> {let mut f = File::open("hello.txt")?;let mut s = String::new();f.read_to_string(&mut s)?;Ok(s)}
Erklärung
1
File::open("hello.txt")?
Versucht eine Datei zu öffnen. Bei Fehlern wird der Fehler sofort zurückgegeben.
2
Ok(s)
Hüllt das erfolgreiche Ergebnis in eine Ok-Variante ein.