Ich habe ein Programm, bei dem Benutzereingaben in einer Funktion gesammelt und ein Wert zurückgegeben wird. In der Funktion versucht es, den String
Eingang zu einem u32
zu analysieren. Wenn es fehlschlägt, anstatt Panik und beenden Sie das Programm, ich möchte es die String
zurückgeben.Wie gebe ich einen benutzerdefinierten Typ bei Erfolg oder eine Zeichenfolge bei einem Fehler zurück?
Ist es möglich, einen beliebigen Rückgabetyp zuzulassen? Ich las den Generikaabschnitt im Rust Book, aber es enthielt nichts über die Rückgabe eines generischen Typs.
Hier ist mein Code:
fn read_input(question: &str) -> u32 {
let mut input = String::new();
println!("{}", question);
io::stdin()
.read_line(&mut input)
.ok()
.expect("failed to read input");
match input.trim().parse() {
Ok(number) => {
return number; // return a u32
}
Err(_) => {
return input; // return a String
}
}
}
Vielen Dank. Das hat meine Frage (n) perfekt beantwortet. – qolop