我一直在玩 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 章末尾作为一个具体的例子进行了介绍。