← 学习中心

Trait 定义与实现

定义共享行为并为空类型/外部类型实现

本节你将能

定义 Trait、为类型实现,并了解孤儿规则的直觉边界。

直觉模型

Trait 像接口:声明能力;impl Trait for Type 是某类型兑现承诺。

核心要点

  • 可提供默认方法实现
  • 派生宏:#[derive(Debug, Clone)]
  • 孤儿规则:trait 或类型至少有一个在当前 crate,才能写 impl
trait Summary { fn summarize(&self) -> String; }
impl Summary for String {
    fn summarize(&self) -> String { format!("{}...", &self[..20.min(self.len())]) }
}

常见误区

试图为外部类型实现外部 trait——会被孤儿规则拒绝,需 newtype 包装。

动手

定义 Describable 并为自定义结构体实现。

互动

测验:默认方法与派生宏的用途。

本节小结

下一节用 trait bound 限制泛型参数。

Trait 定义与实现 - 生命科学与前沿科技学习平台 | 必学必会