泛型和多态
- 泛型允许在编写代码时使用抽象类型来代替具体类型,可以在不同的数据类型上工作,同时避免代码重复。通过泛型,我们可以编写一次代码,然后在需要的地方使用不同类型的数据进行实例化。通过在函数、结构体、枚举等定义中使用
<T>
这样的类型参数来实现。例如,Vec<T>
是一个泛型集合,可以在编译时针对任何类型T
进行实例化。 - 多态是面向对象编程中的一个重要概念,它允许不同类型的对象以统一的方式进行操作。在
Rust
中,多态主要通过trait
对象来实现。通过trait
对象来实现,例如&dyn Trait
或Box<dyn Trait>
。这允许你在运行时拥有不同类型但都实现了相同trait
的对象。 Rust
中的泛型主要是为了实现参数化多态(parametric polymorphism
),即在编写代码时可以使用不特定类型的抽象。- 总结来说,泛型是一种在编译时期实现的通用性,而多态则是一种在运行时期实现的灵活