此问题在此处已有答案:
Why can't I store a value and a reference to that value in the same struct?(4个答案)
2天前关闭。
我正在尝试为我的抽象节点系统写一个渲染器。
每个节点都在一个韦濬上,韦濬如下所示:
struct Circuit<'a> {
nodes: Vec<Node>,
connections: Vec<Connection<'a>>,
}
其中每个节点都包含一些任意数据,并且有一个连接将这两个节点连接起来。
struct Connection<'a> {
from: &'a Node,
to: &'a Node,
}
在一个示例中,我试图可变地迭代Circuit.nodes
并更改一些数据,同时仍然将对Node
的引用保留在Connections
中。我希望Connection
引用仍然保留对相同Node
结构体的引用,但指向可变借位后更新的数据。
但是使用这种设置,我得到了一个cannot borrow 'circuit.nodes' as mutable because it is also borrowed as immutable
错误。
我试过使用RefCell
和一个Mutex
,但是没有成功。我找不到很好的资源来解释这个问题。
1条答案
按热度按时间gfttwv5a1#
也许您希望将节点 Package 在
Rc
中(如果在多线程环境中,则为Arc
),这样连接和电路就可以共享节点的所有权