1. Trait 定义
Trait 定义了一个抽象接口,类似其他语言中的interface,这个抽象接口可以被类型继承。
2.Trait的组成部分
- functions(方法)
- types(类型)
- constants(常量)
所有的Trait都定义了一个隐含类型Self,其指向实现该Trait的类型。Traits可能也包含额外的类型参数,这些类型参数(包括Self),与往常一样可能受到其他Traits等的约束。
类型需要通过独立的implementations去实现不同的Trait。
2.Self与self
Self:实现Trait的类型的别名
self:方法参数 fn f(self) {},等价于fn f(self: Self) {}
同理有:
&self等价于self: &Self,
&mut self等价于self: &mut Self
3. 代码实现
3.1 trait的定义与实现(trait 只定义接口)
// 定义一个抽象接口
pub trait Age