When I compile this with Rust 1.3, the compiler tells me that virtual
structs have been removed from the language:
struct Foo: Bar {
}
Short answer, you can't do inheritance with structs.
Instead of inheritance, Rust uses composition. However, you can do inheritance within traits . Traits don't have data, but they can define functions, so you can many of the benefits of inheritance by using them:
trait Foo {
fn foo(&self);
}
trait FooBar: Foo {
fn foobar(&self);
}
An implementor of FooBar
must implement foo
(unless you provide a default implementation).
One way Rust does specialization is typically through enums
, which are very powerful in Rust. One of the Rust developers wrote a good blog series about how Rust approaches these types of problems . I recommend reading through it as well as reading through the official book.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.