MST
星途 面试题库

面试题:Rust中trait的基本应用

请描述Rust中trait的定义方式,并举例说明如何为结构体实现一个自定义trait,同时展示如何使用该实现的trait。
11.2万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

1. Trait的定义方式

在Rust中,使用 trait 关键字来定义trait。语法如下:

trait TraitName {
    // 方法签名
    fn method_name(&self);
}

例如,定义一个 Animal trait:

trait Animal {
    fn speak(&self);
}

2. 为结构体实现自定义trait

假设我们有一个 Dog 结构体,为它实现 Animal trait:

struct Dog {
    name: String,
}

impl Animal for Dog {
    fn speak(&self) {
        println!("{} says Woof!", self.name);
    }
}

3. 使用该实现的trait

fn main() {
    let my_dog = Dog { name: "Buddy".to_string() };
    my_dog.speak();
}

main 函数中,我们创建了一个 Dog 实例,并调用了实现自 Animal trait 的 speak 方法。