Rust 自 1.86 起有了稳定的 Trait 上溯转换 功能。例如 trait Base: Any{} + trait Derived: Base{},以前具体类型 &T 转为 &dyn Derived 后无法转为 &dyn Base (只能通过 &T 直接转换到 &dyn Base)。现在有了向上转换的支持,&T 可以转为 &dyn Derived 再转为 &dyn Base ,还能再转到 &dyn Any 然后通过 RTTI 向下转换回 &T ,完整的多态功能就此实现!!
暂无评论