MST

星途 面试题库

面试题:Rust数组迭代之基本方式考察

在Rust中,给定一个数组`let arr = [1, 2, 3, 4, 5];`,请使用`for`循环和`iter`方法分别对数组进行迭代,打印出每个元素的平方值。并简要说明`for`循环迭代和`iter`方法迭代在原理上的主要区别。
33.3万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

使用for循环迭代

fn main() {
    let arr = [1, 2, 3, 4, 5];
    for num in &arr {
        let square = num * num;
        println!("{}", square);
    }
}

使用iter方法迭代

fn main() {
    let arr = [1, 2, 3, 4, 5];
    arr.iter().for_each(|num| {
        let square = num * num;
        println!("{}", square);
    });
}

原理区别

  • for循环for循环是Rust中的语法糖,在编译时会被展开为while let循环。它直接在集合上进行迭代,通常会消耗集合所有权(除非使用引用)。它按照集合的存储顺序直接访问元素,适用于简单的迭代场景。
  • iter方法iter方法返回一个实现了Iterator trait的迭代器对象。迭代器提供了一种更灵活、功能更丰富的迭代方式,如链式调用各种适配器方法(如mapfilter等)。迭代器在迭代过程中不会消耗集合的所有权,而是通过next方法逐个生成元素,允许更复杂的迭代逻辑。