使用 rust 1.2.0
问题
我仍然在学习 Rust (来自 Javascript 背景)的过程中,并试图弄清楚是否有可能让一个结构 StructB
扩展现有的结构 StructA
,使得 StructB
具有在 StructA
上定义的所有字段。
在 Javascript (ES6语法)中,我基本上可以这样做..。
class Person {
constructor (gender, age) {
this.gender = gender;
this.age = age;
}
}
class Child extends Person {
constructor (name, gender, age) {
super(gender, age);
this.name = name;
}
}
约束
StructA
是从一个外部 cargo
包,我没有控制。当前进展
我找到了这个 关于单继承的博客文章听起来正是我需要的。
但是试图实现它会导致这个错误消息 error: virtual structs have been removed from the language
。一些搜索后,我发现这是 实现,然后根据 RFC-341删除相当快。
也发现这个 关于使用 trait 的线索,但因为 StructA
是从一个外部货物包,我不认为它是可能的,我把它变成一个特点。
那么在 Rust 中实现这一点的正确方法是什么呢?