MST

星途 面试题库

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

请编写一个Rust结构体 `User`,包含 `name`(字符串)和 `age`(整数)字段。实现一个链式方法调用,使得可以连续调用 `set_name` 方法设置名字,`set_age` 方法设置年龄,并最终通过 `print_info` 方法打印出用户信息。
18.3万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct User {
    name: String,
    age: i32,
}

impl User {
    fn new() -> Self {
        User {
            name: String::new(),
            age: 0,
        }
    }

    fn set_name(mut self, name: &str) -> Self {
        self.name = name.to_string();
        self
    }

    fn set_age(mut self, age: i32) -> Self {
        self.age = age;
        self
    }

    fn print_info(self) {
        println!("Name: {}, Age: {}", self.name, self.age);
    }
}

你可以这样调用:

fn main() {
    User::new()
      .set_name("Alice")
      .set_age(30)
      .print_info();
}