参考:https://course.rs/basic/trait/trait.html | Rust语言圣经(Rust Course)
1、定义特征
定义特征,与定义接口类似。
特征,定义了一组可以被共享的行为,只要实现了特征,你就能使用这组行为。
请看下面的例子:
2、实现特征
实现特征,与实现方法类似。
特征只定义行为看起来是啥样的,因此需要为类型实现具体的特征,定义行为具体是啥样的。
请看下面的例子:首先来为 Post 和 Weibo 实现 Summary 特征:
关于特征实现与定义的位置,有一条非常重要的原则:
如果你想要为类型 A
实现特征 T
,那么 A
或者 T
至少有一个是在当前作用域中定义的!
该规则被称为孤儿规则。
3、默认实现
可在特征中定义默认实现的方法,So其它类型无需再实现该方法,或者也可重载该方法。
请看下面这个例子:
上面为 Summary 定义了一个默认实现,下面我们编写段代码来测试下: