【发布时间】:2019-12-02 16:54:02
【问题描述】:
我想在结构中有一个字段,如下所示:
struct Foo<T> {
bar: Smart<T>
}
其中 bar 可以是 Rc<T 或 Weak<T>,具体取决于 Foo 的不同实例之间的“所有权关系”。除了创建自定义枚举之外,Rust 中是否有任何惯用的方法来做到这一点?
【问题讨论】:
-
我不认为存在这样的类型,但我不确定这是一个好主意:weak vs rc 允许对所有权关系进行建模。例如,父级拥有一个子级 (
Rc<Child>),而子级指向其所有者:Weak<Parent>。无法区分这种根本差异可能会令人困惑。
标签: rust