13
struct Foo: Bar {
}
當我編譯這個時,編譯器告訴我virtual
結構已經從語言中刪除。在Rust 1.3中繼承結構的最佳方式是什麼?
在發佈此問題時,Rust 1.3是當前的穩定版本。
struct Foo: Bar {
}
當我編譯這個時,編譯器告訴我virtual
結構已經從語言中刪除。在Rust 1.3中繼承結構的最佳方式是什麼?
在發佈此問題時,Rust 1.3是當前的穩定版本。
簡而言之,你不能對結構進行繼承。
除了繼承,Rust還使用了組合。不過,你可以在traits內做繼承。性狀沒有數據,但它們可以定義功能,讓你可以得到相當多的繼承的好處:
trait Foo {
fn foo(&self);
}
trait FooBar: Foo {
fn foobar(&self);
}
的FooBar
實現者必須實現foo
(除非你提供一個默認的實現) 。
單程Rust的專業化通常是通過enums
,這在Rust中非常強大。 Rust開發人員之一寫了a good blog series about how Rust approaches these types of problems。我建議您閱讀並閱讀官方書籍(前面鏈接)。
http://aturon.github.io/blog/2015/09/18/reuse/有幾個Servo實例,如果你真的需要繼承。 – ArtemGr