MST
星途 面试题库

面试题:Rust结构体可变性的基本应用

请描述在Rust中如何定义一个可变的结构体实例,以及如何在函数中接收并修改这个可变结构体实例。同时,举例说明在结构体内部方法中如何改变结构体成员变量的值。
24.7万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. 定义可变的结构体实例: 在Rust中,定义结构体后,使用mut关键字来声明可变的结构体实例。例如:
    struct Point {
        x: i32,
        y: i32,
    }
    
    fn main() {
        let mut p = Point { x: 10, y: 20 };
    }
    
  2. 在函数中接收并修改可变结构体实例: 函数参数需要声明为可变引用&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);
    }
    
  3. 在结构体内部方法中改变结构体成员变量的值: 结构体方法的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);
    }