← 学习中心

泛型函数与结构体

用类型参数消除重复并保持静态分发

本节你将能

为函数与结构体添加类型参数,并理解单态化(静态分发)。

直觉模型

泛型是「填空题模板」:编译器按实际类型各生成一份具体代码,运行时通常零开销。

核心要点

  • fn largest<T: PartialOrd>(list: &[T]) -> &T
  • 结构体字段可持有 T:struct Point<T> { x: T, y: T }
  • 默认静态分发;需要时可配合 trait 对象做动态分发
struct Pair { a: T, b: T }
fn first(p: &Pair) -> &T { &p.a }

常见误区

以为泛型总是「装箱慢」——单态化后通常与手写具体类型一样快。

动手

实现泛型 swap<T>(a: &mut T, b: &mut T)。

互动

测验:泛型何时需要约束。

本节小结

下一节用 Trait 描述「T 必须会做什么」。

泛型函数与结构体 - 生命科学与前沿科技学习平台 | 必学必会