fn count_occur(v: &Vec<i32>, val: i32) -> usize {
v.into_iter().filter(|&&x| x == val).count()
}
fn main() -> () {
let v1 : Vec<i32> = vec![1,2,3, 4,5,6];
for &item in &v1 {
count_occur(&v1, item);
}
}
有人可以向我解释为什么lambda
需要使用&&x
(我的意思是为什么需要双重引用-我看不到为什么传递给lambda的元素是对引用的引用)>
答案 0 :(得分:0)
IntoIterator implementation for &'a Vec返回&T
的项目。
filter
's predicate被定义为where P: FnMut(&I::Item) -> bool
。它引用了迭代器的项目,因此引用了双重引用。