bit*_*ick 21 inheritance struct rust
当我使用Rust 1.3编译它时,编译器告诉我virtual结构已从语言中删除:
struct Foo: Bar {
}
Run Code Online (Sandbox Code Playgroud)
bea*_*mit 13
简短的回答,你不能用结构继承.
Rust使用组合而不是继承.但是,您可以在特征中进行继承.Traits没有数据,但是它们可以定义函数,因此通过使用它们可以获得继承的许多好处:
trait Foo {
fn foo(&self);
}
trait FooBar: Foo {
fn foobar(&self);
}
Run Code Online (Sandbox Code Playgroud)
的实现者FooBar 必须实现foo(除非你提供一个默认的实现).
Rust专业化的一种方式通常是通过enums,这在Rust中非常强大.Rust的一位开发人员写了一篇关于Rust如何解决这些类型问题的好博客系列.我建议通读它以及阅读官方书籍.
| 归档时间: |
|
| 查看次数: |
11104 次 |
| 最近记录: |