Refining Ch05.

This commit is contained in:
rust-lang.xfoss.com
2023-12-14 17:51:33 +08:00
parent a763af3eb5
commit da1d65a5d8
2 changed files with 67 additions and 67 deletions

View File

@@ -4,49 +4,14 @@ struct Rectangle {
height: u32,
}
impl Rectangle {
fn area(&self) -> u32 {
self.width * self.height
}
fn width(&self) -> bool {
self.width > 0
}
fn can_hold(&self, other: &Rectangle) -> bool {
(self.width > other.width && self.height > other.height) ||
(self.width > other.height && self.height > other.width)
}
fn square(size: u32) -> Rectangle {
Rectangle {
width: size,
height: size,
}
}
}
fn main() {
let scale = 2;
let rect1 = Rectangle {
width: 30,
width: dbg! (30 * scale),
height: 50,
};
let rect2 = Rectangle {
width: 10,
height: 40,
};
let rect3 = Rectangle {
width: 45,
height: 25,
};
let sq1 = Rectangle::square(28);
let sq2 = Rectangle::square(35);
println! ("rect1 可以装下 rect2 吗?{}", rect1.can_hold(&rect2));
println! ("rect1 可以装下 rect3 吗?{}", rect1.can_hold(&rect3));
println! ("rect1 可以装下 sq1 吗?{}", rect1.can_hold(&sq1));
println! ("rect1 可以装下 sq2 吗?{}", rect1.can_hold(&sq2));
dbg! (&rect1);
}