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/

相关文章:

java - 父类(super class)引用变量所持有的引用的类型是什么?

c++ - 用子类覆盖基类中定义的函数

c++ - 没有定义的 typedef 结构

c - 奇怪的结构声明

rust - 不能将 `hsets` 借为可变,因为它也被借为不可变

rust - 为什么在解构变量后无法调用方法,但直接访问该字段却可以调用方法?

c++ - 以下情况会在多线程中创建竞争条件吗?

objective-c - 保存自定义对象的 NSArray

c - 带结构前缀的初始化是什么意思?

concurrency - 克隆 Arc 时会发生什么?