MST
星途 面试题库

面试题:Rust中结构体如何重载加法运算符

请编写一个Rust程序,定义一个结构体 `Point`,包含两个 `i32` 类型的字段 `x` 和 `y`,并为该结构体重载加法运算符 `+`,使得可以对两个 `Point` 结构体实例进行相加操作,结果返回一个新的 `Point` 实例,其 `x` 和 `y` 字段分别为两个操作数对应字段之和。
30.9万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

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

impl std::ops::Add for Point {
    type Output = Point;

    fn add(self, other: Point) -> Point {
        Point {
            x: self.x + other.x,
            y: self.y + other.y,
        }
    }
}

fn main() {
    let p1 = Point { x: 1, y: 2 };
    let p2 = Point { x: 3, y: 4 };
    let p3 = p1 + p2;
    println!("p3: x = {}, y = {}", p3.x, p3.y);
}