私は、ユーザー入力が関数内で収集され、値が返されるプログラムを持っています。この関数では、String
の入力をu32
に解析しようとします。パニックではなく失敗した場合は、String
を返信してください。成功した場合にユーザー指定の型を返し、失敗した場合にStringを返すにはどうすればよいですか?
戻り値の型を許可することはできますか?私はRust Bookのジェネリックスのセクションを読んだが、ジェネリック型を返すことについては何も書いていなかった。ここで
は私のコードです:
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
}
}
}
ありがとうございました。これは私の質問に完全に答えました。 – qolop