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 33 34 35 36 37 38 39
| # [derive(Debug)] struct Point<T> { x:T, y:T, } impl <T> Point<T> { fn get_x(&self) -> &T { &self.x } fn get_y(&self) -> &T { &self.y } } struct Point2<T,U> { x:T, y:U, } impl <T,U> Point2<T,U> { fn create_point<V,W> (self, other:Point2<V,W>) -> Point2<T,W> { Point2 { x: self.x, y: other.y, } } }
fn main() { let p = Point{x:1.1,y:2.2}; println!("x = {},y = {}",p.get_x(),p.get_y()); let p = Point{x:1.1,y:2.2}; println!("x = {},y = {}",p.get_x(),p.get_y()); let p1 = Point2{x:5,y:1.1}; let p2 = Point2{x:"hello",y:'c'}; let p3 = p1.create_point(p2); println!("p3 = {:?}",p3); }
|