4.2.6 Trait 对象与动态分发
06-Trait 对象与动态分发 — Comprehensive Rust
1分钟内可阅读完
译文 · 基于 Comprehensive Rust
4.2.6 Trait 对象与动态分发
| |
动态分发是面向对象编程中的工具,常用于更关心类型行为而非类型本身是什么的场景。
在 OOP 语言中,动态分发往往是 隐式 过程,无法选择退出。
在 Rust 中,我们使用
dyn Trait:一种可选择启用的动态分发形式。对任何 dyn 兼容(dyn compatible)的 trait,都可以把对该 trait 实现者的引用强制转换(coerce)为
dyn Trait值。我们称之为 trait 对象。其具体类型在编译期未知,但行为已知:即 trait 本身所规定的实现。
当你 需要 OOP 风格的异构数据结构时,可以求助于
Box<dyn Trait>,但请优先保持同构并以泛型为基础!