MST

星途 面试题库

面试题:Rust中链式方法调用的基本实现

在Rust中,假设有一个结构体`MyStruct`,包含一个`i32`类型的成员变量`value`。请实现两个方法`increment`和`double`,使得可以链式调用这两个方法来对`value`进行操作,即`MyStruct::new(5).increment().double()`,最终返回值为12 。请写出完整的代码实现。
25.3万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct MyStruct {
    value: i32,
}

impl MyStruct {
    fn new(value: i32) -> Self {
        MyStruct { value }
    }

    fn increment(&mut self) -> &mut Self {
        self.value += 1;
        self
    }

    fn double(&mut self) -> i32 {
        self.value *= 2;
        self.value
    }
}