面试题答案
一键面试// 定义特型Drawable
trait Drawable {
fn draw(&self);
}
// 定义Rectangle结构体
struct Rectangle {
width: u32,
height: u32,
}
// 为Rectangle实现Drawable特型
impl Drawable for Rectangle {
fn draw(&self) {
println!("Drawing a rectangle with width {} and height {}", self.width, self.height);
}
}
// 定义Circle结构体
struct Circle {
radius: u32,
}
// 为Circle实现Drawable特型
impl Drawable for Circle {
fn draw(&self) {
println!("Drawing a circle with radius {}", self.radius);
}
}
在这种情况下,Drawable
特型定义了 Rectangle
和 Circle
类型之间的关系为它们都具有可绘制的能力。尽管 Rectangle
和 Circle
是不同的结构体,通过实现 Drawable
特型,它们都保证提供了 draw
方法。这使得可以在代码中以统一的方式处理实现了 Drawable
特型的类型,而不需要关心它们具体是 Rectangle
还是 Circle
,增强了代码的抽象性和复用性。