MST

星途 面试题库

面试题:Rust中如何优化获取 - 修改操作以避免不必要的复制

在Rust代码中,经常会遇到获取一个值然后对其进行修改的操作。假设有一个结构体`Point`,包含`x`和`y`两个`i32`类型的字段。现在有一个函数,需要获取`Point`实例中的`x`值,将其加1后再修改回`Point`实例。请写出优化后的代码,避免不必要的复制操作,并简要说明优化的原理。
24.0万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct Point {
    x: i32,
    y: i32,
}

impl Point {
    fn increment_x(&mut self) {
        self.x += 1;
    }
}

优化原理:通过使用&mut self,直接在原Point实例上进行操作,避免了复制x值然后再赋值回去的操作。Rust的借用规则允许对实例进行可变借用,从而直接修改实例内部字段,提高了效率,减少了不必要的内存复制。