《Rust 编程第一课》 学习笔记 Day 12

75 阅读1分钟

大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 Go、Lua。第十二天还是继续和大家一起学习 Rust😊

特设多态包括运算符重载,是指同一种行为有很多不同的实现;而把子类型当成父类型使用,比如 Cat 当成 Animal 使用,属于子类型多态。这两种多态的实现在 Rust 中都和 trait 有关。

trait 是 Rust 中的接口,它定义了类型使用这个接口的行为。如果一个对象 A 是对象 B 的子类,那么 A 的实例可以出现在任何期望 B 的实例的上下文中,比如猫和狗都是动物,如果一个函数的接口要求传入一个动物,那么传入猫和狗都是允许的。

trait 作为对不同数据结构中相同行为的一种抽象,它可以让我们在开发时,通过用户需求,先敲定系统的行为,把这些行为抽象成 trait,之后再慢慢确定要使用的数据结构,以及如何为数据结构实现这些 trait。

image.png