面试题答案
一键面试在Rust语言中代码实现如下:
struct Person {
name: String,
age: i32,
}
fn increment_age(person: &mut Person) {
person.age += 1;
}
引用在此处避免所有权转移带来的好处:
- 资源复用:如果不使用引用,传递
Person
结构体时会发生所有权转移,函数结束后原变量无法再使用。使用引用可以在不转移所有权的情况下对结构体进行操作,使得原变量在函数调用结束后仍能继续使用,从而实现资源复用。 - 性能提升:避免了不必要的数据复制,特别是对于大型结构体,传递引用只传递一个指针,相比传递整个结构体,在性能上有显著提升。
- 代码简洁:在多个函数需要操作同一个结构体实例时,使用引用可以使代码更加简洁,不必在每个函数调用时都处理所有权的转移和返回。