我对Rust很陌生,因为我决定直接从Python跳出来挑战自己。我无法确定Result返回类型,所以我想也许在这里我会找到一些帮助。
我目前正在编写一个实现输入(消息)功能的程序,如下所示:
fn input(message: &str) -> io::Result<String> { print!("{}", message); io::stdout().flush()?; let mut user_input = String::new(); io::stdin().read_line(&mut user_input)?; Ok(user_input.trim().to_owned()) }
(来自教程)。代码运行良好,但我正试图找出如何使用std::result::Result
而不是io::Result
,只是因为。
我尝试将其转换为:
fn input(message: &str) -> Result<String, Error> { /* */ }
但是编译器告诉我问号运算符不能将其错误转换为std::fmt::Error
。我只是想知道如何正确使用Result作为返回类型。我应该指定Err(something)返回吗?在那种情况下,我甚至不知道该怎么做。
我需要一个关于到底发生了什么的清晰解释(比如,非常清楚,这样我的猴子大脑就能理解事情)。提前感谢各位。