面试题答案
一键面试fn main() {
let numbers: Vec<i32> = vec![5, 15, 25, 12, 18];
let filtered: Vec<i32> = numbers.iter()
.cloned()
.filter(|&num| num >= 10 && num <= 20)
.collect();
println!("{:?}", filtered);
}
解释:
numbers.iter()
:将Vec<i32>
转成迭代器。.cloned()
:由于iter()
返回的迭代器元素类型是&i32
,cloned()
方法将其克隆成i32
类型,这样后续filter
处理的就是i32
类型的值。.filter(|&num| num >= 10 && num <= 20)
:过滤出10
到20
(包含边界)之间的元素。.collect()
:将过滤后的结果收集到一个新的Vec<i32>
中。