【发布时间】:2020-06-14 05:27:13
【问题描述】:
我有这样的数据结构:
mod nodes {
struct Node {
predecessors: Vec<Rc<Node>>
}
}
我显然不需要该模块中节点的可变性。我这里也没有循环引用。
但我有另一个模块,其中包含我需要可变性的节点:
pub mod network {
mod nodes {...}
struct Network {
nodes: Vec<Vec<Rc<RefCell<Node>>>>
}
}
我只是想不出一种方法来为节点本身创建Rc<Node>s 以及为Network 创建Rc<RefCell<Node>>s。
您对如何在network 模块中的可变节点旁边的nodes 模块中实现不变性有任何想法吗?
或者除了将Node 结构中的前驱节点的引用声明为Rc<RefCell<Node>> 之外没有其他方法,即使我在这里不需要可变性(我想避免这种情况)?
【问题讨论】:
标签: data-structures rust interior-mutability