1. 程式人生 > >結構體和方法

結構體和方法

pan att div println sel res bug com .com

結構體和方法

use std::fmt;

#[derive(Debug)]
struct Rectangle {
    width: u32,
    height: u32,
}

impl std::fmt::Display for Rectangle {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "Rectangle width: {} height: {}", self.width, self.height)
    }
}

impl Rectangle {
    fn area(
&self) -> u32 { self.width * self.width } fn can_hold(&self, other: &Rectangle) -> bool { self.width > other.width && self.height > other.height } fn square(size: u32) -> Rectangle { Rectangle { width: size, height: size, } } } fn main() { let rect1
= Rectangle { width: 30, height: 50 }; let rect2 = Rectangle { width: 10, height: 40 }; let rect3 = Rectangle { width: 60, height: 45 }; let rect4 = Rectangle::square(40); println!("Can rect1 hold rect2? {}", rect1.can_hold(&rect2)); println!("Can rect1 hold rect3? {}", rect1.can_hold(&rect3)); println
!("rect4 is {}", rect4); println!("rect4 is {:#?}", rect4); println!( "The area of the rectangle is {} square pixels.", rect4.area() ); }

技術分享圖片

結構體和方法