📅  最后修改于: 2023-12-03 15:04:58.060000             🧑  作者: Mango
在 Rust 中,向量是一种动态数组,它们可以自动扩展和收缩以容纳任意数量的元素。有时候,我们需要对向量中的元素进行过滤,只保留符合特定条件的元素。
下面是一个 Rust 过滤向量示例:
fn main() {
let nums = vec![1, 2, 3, 4, 5];
// 从向量中过滤出所有偶数
let evens: Vec<i32> = nums.into_iter()
.filter(|&n| n % 2 == 0)
.collect();
println!("{:?}", evens);
}
在这个示例中,我们首先创建了一个包含 1 到 5 的整数向量 nums
。然后,我们使用 into_iter()
方法从向量中获取一个迭代器,并使用 filter()
方法对每个元素进行条件过滤。在这里,我们使用了闭包来检查元素是否为偶数。最后,我们将过滤出的元素收集到一个新的向量 evens
中,并使用 println!()
函数输出结果。
输出应该为:[2, 4]
。
值得注意的是,由于 filter()
方法不会直接修改原始向量,因此我们必须将结果收集到一个新的向量中。
通过使用迭代器和闭包,我们可以对 Rust 向量中的元素进行高效过滤和转换。这是 Rust 强大和灵活的语言特性之一。