首页 > 解决方案 > Rust 函数中的显式“return”关键字

问题描述

我刚开始学习 Rust,我在文档中看到要从函数返回一个值,表达式只是自己放在函数的末尾,没有像这样的分号:

fn times_2(x: i32) -> i32 {
    x * 2
}

我知道另一种方法是return在行首显式编写,但尽管在文档中的任何示例中都没有这样做,但对我来说似乎更清晰、更易读。

在不需要时显式编写是一种不好的做法return,还是无关紧要?

标签: rust

解决方案


虽然在这种情况下当然可以编写return x * 2;并且它在功能上是等效的,但它在 Rust 中并不是惯用的。不同的语言对此有不同的最佳实践:在 Perl 中,许多人更喜欢显式和 write return,而在 Ruby 和 Rust 中,通常更喜欢省略它。

请注意,其他上下文也使用最后一个值作为块的值:闭包、if-else 块、匹配块和其他各种。 return在大多数情况下无效或不等效,因此您需要习惯在其他地方看到这种语法。

省略它的最佳理由可能是cargo clippy警告它,这是一种常用的代码检查工具。即使不喜欢这个工具,其他使用 Rust 代码的人也会在他们的编辑器中默认启用它,如果你忽略它,他们会看到所有的样式警告。除非您令人信服的理由不这样做(例如向后兼容旧的 Rust 版本),否则最好不要让您的代码出现剪裁警告。


推荐阅读