inheritance - 在 Rust 1.3 中继承结构的最佳方式是什么?

标签 inheritance struct rust

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

struct Foo: Bar {

}

最佳答案

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

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 .我建议通读它以及通读官方书籍。

关于inheritance - 在 Rust 1.3 中继承结构的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328392/

相关文章:

rust - 如何在不消耗值的情况下实现Add trait

c# - 隐藏基类中存在的方法

C++ 接口(interface)实现和子类对象实例化

c - 如何通过Bachelor结构和Info结构访问Info1?

rust - 我可以使用 Rust 词法分析器或解析器来检索 Rust 文件中的函数列表吗?

rust - 错误[E0658] : `cfg(doctest)` is experimental and subject to change

java - 期望类、接口(interface)或枚举

c++ - 派生和模板化使用之间有什么区别? (请看上下文)

json - 如何将嵌套的 JSON 数组解析为 Codable 结构

c - 在 C 中自动生成结构成员名称