【发布时间】:2019-09-21 23:53:15
【问题描述】:
我想计算选项集合中某个值的出现次数。
let v = vec![Some(1), Some(1), Some(3), None];
v.iter()
.filter(|Some(x)| x == &1)
.count();
这样做会产生refutable pattern not covered 错误,这是有道理的。
我通过这样做解决了这个问题
v.iter()
.filter(|x| x.is_some() && x.unwrap() == &1)
.count()
在 rust 中执行此操作的惯用方法是什么?
【问题讨论】:
-
你很亲密:
.filter(|&x| x == Some(1)) -
你也想数 None 吗?
-
对不起,我选择了一个简化的例子。我的 x 是一个结构,我需要将它与 rhs 中的传递值进行比较。喜欢
x.is_some() && x.unwrap().value() == id -
我不在乎
Nones