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
Clone、Copy、Debug、PartialEq、Eq、Hash、Send、Sync 等;自定义类型按需实现,derive 宏生成样板 impl。