MST

星途 面试题库

面试题:Rust 中特型如何定义类型间的关系

在 Rust 编程中,假设你要定义一个特型 `Drawable` 来表示具有可绘制特性的类型,并且有 `Rectangle` 和 `Circle` 两个结构体都实现这个特型。请编写代码来完成这个定义和实现,并简要说明在这种情况下,特型是如何定义 `Rectangle` 和 `Circle` 类型之间关系的。
26.2万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义特型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 特型定义了 RectangleCircle 类型之间的关系为它们都具有可绘制的能力。尽管 RectangleCircle 是不同的结构体,通过实现 Drawable 特型,它们都保证提供了 draw 方法。这使得可以在代码中以统一的方式处理实现了 Drawable 特型的类型,而不需要关心它们具体是 Rectangle 还是 Circle,增强了代码的抽象性和复用性。