简体   繁体   中英

What is the best way to inherit a struct in Rust 1.3?

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM