如果我有多个Option<T>' 并且我想选择第一个Some而不是None- 有没有一种惯用的方法来做到这一点?
我天真的方法:
pub fn pick_first_option_available<T>(a: Option<T>, b: Option<T>, c: Option<T>) -> Option<T> {
match a {
Some(a) => Some(a),
None => match b {
Some(b) => Some(b),
None => match c {
Some(c) => Some(c),
None => None,
},
},
}
}
Run Code Online (Sandbox Code Playgroud)
上述的一个明显问题是它仅限于固定数量的选项 (3)。我宁愿有一个更一般的功能。
有一个有点相关的线程在这里,但它铲球总结采摘选项来代替。
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |