MST

星途 面试题库

面试题:Rust中迭代器适配器map和filter的使用场景及示例

请阐述Rust迭代器适配器map和filter通常在哪些场景下使用,并分别给出一个具体的代码示例来展示它们的用法。示例代码需展示如何对一个Vec<i32>进行操作,map将每个元素翻倍,filter过滤出大于10的元素。
43.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

map的使用场景

map 通常用于对集合中的每个元素进行转换操作。比如将一个包含数字的集合,每个数字转换为其平方;或者将字符串集合中的每个字符串转换为大写形式等场景。

map代码示例

fn main() {
    let numbers = vec![1, 2, 3, 4, 5];
    let doubled_numbers: Vec<i32> = numbers.iter().map(|&x| x * 2).collect();
    println!("{:?}", doubled_numbers);
}

filter的使用场景

filter 用于从集合中筛选出符合特定条件的元素。比如从一个包含成绩的集合中筛选出及格的成绩;或者从一个字符串集合中筛选出长度大于5的字符串等场景。

filter代码示例

fn main() {
    let numbers = vec![5, 15, 20, 8, 25];
    let filtered_numbers: Vec<i32> = numbers.iter().filter(|&&x| x > 10).collect();
    println!("{:?}", filtered_numbers);
}