面试题答案
一键面试- 定义可变的结构体实例:
在Rust中,定义结构体后,使用
mut
关键字来声明可变的结构体实例。例如:struct Point { x: i32, y: i32, } fn main() { let mut p = Point { x: 10, y: 20 }; }
- 在函数中接收并修改可变结构体实例:
函数参数需要声明为可变引用
&mut
。例如:struct Point { x: i32, y: i32, } fn update_point(point: &mut Point) { point.x += 1; point.y += 1; } fn main() { let mut p = Point { x: 10, y: 20 }; update_point(&mut p); println!("x: {}, y: {}", p.x, p.y); }
- 在结构体内部方法中改变结构体成员变量的值:
结构体方法的
self
参数需要声明为可变的&mut self
。例如:struct Point { x: i32, y: i32, } impl Point { fn increment(&mut self) { self.x += 1; self.y += 1; } } fn main() { let mut p = Point { x: 10, y: 20 }; p.increment(); println!("x: {}, y: {}", p.x, p.y); }