Rust 函数需要返回关键字.为什么?



我一直在玩 Rust,我正在尝试消除return不必要的语句。在一个案例中,我觉得这里不需要return声明,但我收到"身体没有尾巴"的抱怨。似乎应该使用以下代码:

use sqlite;
use sqlite::Connection
fn main() {
let connection = connect();
query(connection);
}
// The offending function
fn connect() -> Connection {
// Simple example, shouldn't use unwrap
sqlite::open(":memory:").unwrap();
}

我可以向违规函数添加一个return语句,如下所示:

fn connect() -> Connection {
return sqlite::open(":memory:").unwrap();
}

但我很好奇为什么这不起作用。

fn connect() -> Connection {
sqlite::open(":memory:").unwrap()
}

删除分号,将行从语句更改为表达式,该表达式具有返回值,然后 Rust 可以推断出该函数的返回值。

这在 Rust 语言书的第 3 章末尾作为一个具体的例子进行了介绍。

最新更新