面试题答案
一键面试在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()
。