티스토리 뷰

반응형

#[derive(Debug)]

struct Rect {

    width: u32,

    height: u32

}

 

impl Rect {

    fn area(&self) -> u32 {

        self.width * self.height

    }

}

 

#[derive(Debug)]

struct RectT<T> {

    width: T,

    height: T,

}

 

impl<T> RectT<T>{

    fn get_width(&self) -> &T {

        &self.width

    }

 

    fn get_height(&self) -> &T {

        &self.height

    }

}



fn calc_rect(rect: &Rect) -> u32 {

    rect.width * rect.height

}

 

fn main() {

    

    let rect = Rect { width:300,  height:200};

 

    println!("면적1 = {}", calc_rect(&rect));

    println!("면적2 = {}", rect.area());

 

    println!("{:#?}", rect);

 

    let rect = RectT { width: 1, height: 1};

 

    println!("width = {}, height = {}", rect.get_width(), rect.get_height());

 

}

반응형