当我使用 Rust 1.3 编译时,编译器告诉我语言中已经移除了 virtual
结构体:
struct Foo: Bar {
}
当我使用 Rust 1.3 编译时,编译器告诉我语言中已经移除了 virtual
结构体:
struct Foo: Bar {
}
简短回答,你不能用结构体实现继承。
但是,Rust使用组合代替继承。然而,在traits中,你可以实现继承。Traits没有数据,但是它们可以定义函数,因此你可以通过使用它们获得许多继承的好处:
trait Foo {
fn foo(&self);
}
trait FooBar: Foo {
fn foobar(&self);
}
实现FooBar
的人必须实现foo
(除非您提供默认实现)。
Rust实现特化的一种方式通常是通过enums
,在Rust中非常强大。其中一个Rust开发者写了关于Rust如何处理这些问题的很好的博客系列。我建议您阅读它以及阅读官方书籍。