■ AddAssign 트레잇을 사용해 구조체의 제네릭 메소드를 만드는 방법을 보여준다.
▶ 예제 코드 (RS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#[derive(Debug)] struct Point<T> { x : T, y : T } impl<T> Point<T> where T : std::ops::AddAssign { fn new(x : T, y : T) -> Self { return Self { x, y }; } fn add(&mut self, source : Point<T>) { self.x += source.x; self.y += source.y; } } fn main() { let mut point : Point<i32> = Point::new(10, 10); println!("{:?}", point); point.add(Point{ x : 20, y : 30 }); println!("{:?}", point); } |