【发布时间】:2022-01-15 12:41:33
【问题描述】:
我正在学习 Rust,并试图习惯使用 Results 和 Options。给定一个向量。如果我只想要没有错误的结果(或者Option 没有错误的结果),有没有比下面更优雅的方法,或者这与我通常必须编写的样板数量有关?
我意识到在map 中可以做更多的事情,比如unwrap_or_else 和partition 好结果远离坏结果。
let optvec = vec![Some(1), None, Some(4), None];
let filtered = optvec.iter()
.filter(|q| q.is_some())
.map(|q| q.unwrap())
.collect::<Vec<i32>>();
【问题讨论】: