Skip to content
On this page

Trait 与泛型

Trait 定义与实现

rust
trait Summary {
    fn summarize(&self) -> String;
}

impl Summary for MyType { ... }。孤儿规则:trait 或类型至少其一定义在当前 crate。

泛型与约束

fn notify<T: Summary>(item: &T)where 子句整理多个约束。关联类型(type Item)与 GAT 用于表达 trait 内部类型族。

dyn Trait 与对象安全

trait object 为胖指针(数据指针 + vtable);对象安全条件(无 Self: Sized 约束的方法集等)见参考。静态分发单态化(泛型参数)通常更快,动态分发更灵活。

常用标准 trait

CloneCopyDebugPartialEqEqHashSendSync 等;自定义类型按需实现,derive 宏生成样板 impl。

技术文库