use std::ops::{Add, Sub}; /// 二维向量 #[derive(Copy, Clone, Debug, Default)] pub struct Vector2 { /// x坐标 pub x: i32, /// y坐标 pub y: i32, } impl Vector2 { pub fn new(x: i32, y: i32) -> Self { Vector2 { x: x, y: y } } } impl Add for Vector2 { type Output = Vector2; fn add(self, other: Vector2) -> Self::Output { Vector2 { x: self.x + other.x, y: self.y + other.y, } } } impl Sub for Vector2 { type Output = Vector2; fn sub(self, other: Vector2) -> Self::Output { Vector2 { x: self.x - other.x, y: self.y - other.y, } } }