【问题标题】:What is the best way to inherit a struct in Rust 1.3?在 Rust 1.3 中继承结构的最佳方式是什么?
【发布时间】:2015-09-23 09:45:53
【问题描述】:

当我用 Rust 1.3 编译它时,编译器告诉我 virtual 结构已从语言中删除:

struct Foo: Bar {

}

【问题讨论】:

标签: inheritance struct rust


【解决方案1】:

简短的回答,你不能用结构进行继承。

Rust 使用组合代替继承。但是,您可以traits 中进行继承。 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。我建议您阅读它以及阅读官方书籍。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 2021-06-15
    • 2015-02-28
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多