分析rust的三種回傳包裝
// Ok-Wrapping
fn foo() -> Result<PathBuf, io::Error> {
let base = env::current_dir()?;
Ok(base.join("foo"))
}
// use exception
fn foo() -> PathBuf throws io::Error {
let base = env::current_dir()?;
base.join("foo")
}
//Try Functions
#![feature(try_blocks)]
fn foo() -> Result<PathBuf, io::Error> {
try {
let base = env::current_dir()?;
base.join("foo")
}
}
Ok(match thing { ... }) 不好嗎?
有人在boats最近的blog發現他不建議大家用
他建議除了作為返回值以外不要使用Ok-Wrapping
可以讓程式碼更清楚更容易看懂
Ok-Wrapping的心理模型
這幾天大家瘋狂的在討論Ok-Wrapping
本文只是希望以一些分析性的方式來說明
為什麼我個人不喜歡Ok-wrapping的一些原因。
用Rust編寫的GPLv2安全氣囊控制軟件
From 日报小组 @Damody
日报订阅地址:
独立日报订阅地址:
社区学习交流平台订阅:
1
共 0 条评论, 1 页
评论区
写评论还没有评论