← 学习中心

Trait 约束与 where

T: Trait 与 where 子句写法

本节你将能

用 T: Trait 与 where 为泛型添加清晰约束。

直觉模型

约束是招聘条件:候选人(类型)必须会 Debug、会比较、会克隆……否则不录用(编不过)。

核心要点

  • 简写:fn f<T: Display + Clone>(x: T)
  • 复杂时用 where 提高可读性
  • impl Trait 可作参数/返回类型(存在类型的语法糖)
fn notify(item: &T)
where
    T: Summary + std::fmt::Display,
{
    println!("Breaking: {item}");
}

常见误区

约束堆太多导致签名难读——拆小函数或引入中间 trait。

动手

写泛型函数:打印任意实现 Display 的值两次。

互动

测验:选择正确的 bound 写法。

本节小结

下一节对比「泛型单态化」与「trait 对象动态分发」。

Trait 约束与 where - 生命科学与前沿科技学习平台 | 必学必会