面试题答案
一键面试fn process_vec(vec_ref: &mut Vec<i32>) {
if vec_ref.len() < 5 {
vec_ref.push(42);
} else {
for num in vec_ref.iter() {
println!("Number: {}", num);
}
}
}
- 函数参数设计:
- 函数参数使用
&mut Vec<i32>
,这是一个可变引用。通过可变引用,我们既可以读取Vec
的内容,也可以在需要时对其进行修改,符合Rust的引用可变性规则。在Rust中,同一时间只能有一个可变引用(除了一些特殊情况,如Cell
和RefCell
,这里不涉及),以保证内存安全。
- 函数参数使用
- 函数内部实现:
- 在函数内部,首先检查
Vec
的长度。如果长度小于5,使用push
方法向Vec
中添加一个元素42。 - 如果长度大于等于5,使用
iter
方法对Vec
进行遍历,并打印每个元素的值。这样就实现了根据不同条件,对Vec
进行修改或仅读取其内容的操作。
- 在函数内部,首先检查