We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
函数返回结果 Result 不能用 ;;
Result
;
否则报错:
error[E0308]: mismatched types --> src/main.rs:94:27 | 94 | fn run(config: Config) -> Result<(), Box<dyn Error>> { | --- ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `std::result::Result`, found ()
从提示应该很明显了,但是我看这个提示一直想了很久/尝试了很多次,都没有改正确,我还怀疑是中文文档的问题。
去查英文 tutorial 对应这个例子,结果突然看到了 Ok(()) 是没有 ;,我才记起来。
Ok(())
;
在实践中,Rust 语法期望语句后面跟其他语句。这意味着用分号来分隔各个表达式。 这意味着 Rust 看起来很像大部分其他使用分号作为语句结尾的语言,并且你会看到分号出现在几乎每一行 Rust 代码。
那么我们说“几乎”的例外是什么呢?比如:
fn add_one(x: i32) -> i32 { x + 1; }
我们的函数声称它返回一个 i32,不过带有一个分号的话,它将返回一个 ()。Rust 意识到这可能不是我们想要的,并在我们看到的错误中建议我们去掉分号:
()
The text was updated successfully, but these errors were encountered:
No branches or pull requests
函数返回结果
Result
不能用;
;否则报错:
从提示应该很明显了,但是我看这个提示一直想了很久/尝试了很多次,都没有改正确,我还怀疑是中文文档的问题。
去查英文 tutorial 对应这个例子,结果突然看到了
Ok(())
是没有;
,我才记起来。在实践中,Rust 语法期望语句后面跟其他语句。这意味着用分号来分隔各个表达式。
这意味着 Rust 看起来很像大部分其他使用分号作为语句结尾的语言,并且你会看到分号出现在几乎每一行 Rust 代码。
那么我们说“几乎”的例外是什么呢?比如:
我们的函数声称它返回一个 i32,不过带有一个分号的话,它将返回一个
()
。Rust 意识到这可能不是我们想要的,并在我们看到的错误中建议我们去掉分号:The text was updated successfully, but these errors were encountered: