我一直在与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();
}
但是我很好奇为什么这不起作用。
答案 0 :(得分:2)
fn connect() -> Connection {
sqlite::open(":memory:").unwrap()
}
删除分号,将行从statement更改为expression,该行具有返回值,然后Rust可以将其推断为该函数的返回值。
Chapter 3 of the Rust language这本书的最后部分将作为一个具体示例进行介绍。