面试题答案
一键面试以下以Rust语言为例进行实现:
// 定义Drawable特征
trait Drawable {
fn draw(&self);
}
// 定义Point2D结构体
struct Point2D {
x: i32,
y: i32,
}
// 在Point2D上实现Drawable特征
impl Drawable for Point2D {
fn draw(&self) {
println!("Drawing Point2D at ({}, {})", self.x, self.y);
}
}
// 定义Rectangle结构体
struct Rectangle {
x: i32,
y: i32,
width: i32,
height: i32,
}
// 在Rectangle上实现Drawable特征
impl Drawable for Rectangle {
fn draw(&self) {
println!("Drawing Rectangle at ({}, {}) with width {} and height {}", self.x, self.y, self.width, self.height);
}
}
// 定义Circle结构体
struct Circle {
x: i32,
y: i32,
radius: i32,
}
// 在Circle上实现Drawable特征
impl Drawable for Circle {
fn draw(&self) {
println!("Drawing Circle at ({}, {}) with radius {}", self.x, self.y, self.radius);
}
}
对于新的Circle
结构体实现Drawable
特征步骤如下:
- 定义
Circle
结构体,包含其需要的字段(如圆心坐标x
、y
和半径radius
)。 - 使用
impl Drawable for Circle
语法为Circle
实现Drawable
特征。 - 在实现块内,定义
draw
方法,编写具体的绘制逻辑。