trait(特征)类似于其他语言中的interface或者protocol,指定一个实际类型必须满足的功能集合
一、如何理解trait,可以从我们所了解的接口特性去推断trait的用法
1. 那么作为一个类接口的关键字,意味着被它修饰的类不包含实现的方法fn,只定义函数名称和参数,由这个类的实现类去完成它的方法。
2. 任何实现接口的类都必须去实现接口的方法,这种特性恰好可以作为一种从上到下的约束,应用到Rust语法里面。
3. 接口也可以不断被继承,最后实现类须要实现所有的接口里的方法。
二、trai的实现方式
1. 定义接口
trait HasArea {
fn area(&self) ->f64;
}
2. 实现接口
为一个结构体圆增加一个计算圆面积的函数:
struct Circle {
x:f64,
y:f64,
radius:f6