【发布时间】:2020-10-14 04:32:06
【问题描述】:
我在 PostgreSQL 中使用 Diesel ORM 包装器。我正在关注the guide on their website,它的代码如下:
pub fn establish_connection() -> PgConnection {
dotenv().ok();
let database_url = env::var("DATABASE_URL")
.expect("DATABASE_URL must be set");
PgConnection::establish(&database_url)
.expect(&format!("Error connecting to {}", database_url))
}
我通过 dotenv 文档了解了 dotenv() 的作用——它加载了 env 文件。在源代码中我看到dotenv() 返回一个Result。那么ok() 会做什么呢?它会解开结果吗?如果是这样,为什么不使用unwrap()?
【问题讨论】:
-
@joelb 请注意,
ok()的使用不是为了处理失败情况,而是为了忽略失败情况。在处理失败时,通常不会调用ok()(因为它会丢弃错误信息),而是直接匹配返回的Result。
标签: rust rust-result