MST
星途 面试题库

面试题:Rust中while表达式条件优化之常见场景

在Rust中,假设你有一个`while`循环用于处理一个动态增长的`Vec<i32>`,每次循环可能会向`Vec`中添加元素,同时循环条件依赖于`Vec`的长度,如何优化这个`while`表达式的条件,以避免不必要的计算?请给出具体代码示例。
31.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

在Rust中,为了避免while表达式条件中不必要的计算,可以在循环外部计算一次Vec的长度,并在循环中使用一个变量来跟踪长度变化。以下是具体代码示例:

fn main() {
    let mut numbers = Vec::new();
    numbers.push(1);

    // 初始长度
    let mut len = numbers.len();

    while len < 10 {
        numbers.push(len as i32);
        // 更新长度
        len = numbers.len();
    }

    println!("{:?}", numbers);
}

在上述代码中,首先在循环外部定义一个变量len来存储Vec的初始长度。在每次循环中,先根据len进行条件判断,然后更新Vec,再更新len的值。这样就避免了每次在while条件中重复计算numbers.len()