我正在使用基于PostgreSQL的Diesel ORM封装。我在遵循他们网站上的指南,其中有以下代码:
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()
呢?
unwrap
可能会导致panic
,但ok
不会,因此调用者可以处理失败情况。 - joelok()
并不是用于处理失败情况,而是用于忽略失败情况。在处理失败时,通常不会调用ok()
(因为它会丢弃错误信息),而是直接匹配返回的Result
。 - user4815162342