当需要多个所有权时,可以使用 Rc
(引用计数,Reference Counting 缩写)。Rc
跟踪引用的数量,这相当于包裹在 Rc
值的所有者的数量.
每当克隆一个 Rc
时,Rc
的引用计数就会增加 1,而每当克隆得到的 Rc
退出作用域时,引用计数就会减少 1。当 Rc
的引用计数变为 0 时,这意味着已经没有所有者,Rc
和值两者都将被删除。
克隆 Rc
从不执行深拷贝。克隆只创建另一个指向包裹值的指针,并增加计数。
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
std::rc 和 std::sync::arc。