在 Rust 中,分发(Dispatch) 指的是当代码调用一个多态函数(即通过 Trait 定义的函数)时,编译器或运行时如何决定具体执行哪个实现版本的过程。 Rust 提供了两种分发机制:静态分发(Static Dispatch) 和 动态分发(Dynamic Dispatch)。 --- 1. 静态分发 (Static Dispatch) 静态分发是 Rust 的默认行为。编译器在编译阶段就已经知道具体调用的是哪个类型的函数实现。 机制:单态化 (Monomorphization) 当你使用泛型(Generics)约束 Trait 时,编译器会进行静态分发。编译器会根据泛型参数的具体类型,为每一种类型生成一份专门的代码副本。这个过程叫做单态化。 语法 使用泛型语法 或 。 代码示例 优缺点 优点(Pros): 性能极高:函数调用是直接的,没有指针间接引用的开销。 内联优化:编译器可以将函数代码内联(Inline),进一步提升速度。 缺点(Cons): 二进制体积膨胀:因为为每种类型都生成了重复的代码,最终的可执行文件体积会变大。 编译时间变长:编译器需要处理更多的代码。 灵...