是否无法匹配折叠外的价值?

时间:2017-01-10 14:12:03

标签: rust

我有这些变量,我想计算cs出现的次数。

let c = 2;
let s = vec![1, 2, 5, 2, 4, 2, 7];

使用if表达式的闭包进行折叠编译并正常工作:

let r1 = s.iter().fold(0, |a, &x| a + if x == c { 1 } else { 0 });

但是,如果我想使用match之类的

let r2 = s.iter().fold(0, |a, &x| a + match x { c => 1, _ => 0 });

编译器抱怨无法访问的模式错误消息:

22 |     let r2 = s.iter().fold(0, |a, &x| a + match x { c => 1, _ => 0 });
   |                                                                 ^ this is an unreachable pattern

这样做真的不可能吗?

0 个答案:

没有答案