Rust语言入门教程(十) - Trait与泛型
Trait 与泛型
- 欢迎使用并贡献我的开源webhook工具: https://github.com/owenchenxy/rusthook/
什么是Trait
在Rust中,没有类继承,或者说没有结构体的继承。但是,大多数的面向对象的语言都是有继承特性的,那Rust还算是一门面向对象的语言吗?实际上没有一个普适的定义来判断一门语言究竟是不是面向对象的语言。就像争论php究竟是不是最好的语言一样,这近乎是个宗教争论,但Rust社区其实并不关心这一问题,因此究竟是不是面向对象,其实并不重要。
重要的是, Rust为什么没有结构体继承?因为Rust有一种比继承更好的方法来解决我们希望继承解决的问题: Trait。
Trait(特质)类似于Java或者Golang语言中的Interface(接口), Rust采用了Trait组合的方案,而不是继承。
Trait语法格式
还是以上一章中的RedFox
结构体为例:
struct RedFox {
enemy: bool<