我最近开始学习Rust,并了解了智能指针(Box、Rc 和 RefCell)。
在指南中,他们谈到了Rc实现“共享所有权”,但如果我理解正确,所有权系统的整个重点就是只能有一个所有者。
对于我这样的Rust新手来说,似乎Rc和RefCell采用它们包含的值的所有权并只是“公开”所包含值的不同类型的引用?
我错了吗? 如果是,为什么Rust被允许这样“欺骗”所有权系统?理论上,我是否能够实现自己的“欺骗”类型?
在指南中,他们谈到了Rc实现“共享所有权”,但如果我理解正确,所有权系统的整个重点就是只能有一个所有者。
对于我这样的Rust新手来说,似乎Rc和RefCell采用它们包含的值的所有权并只是“公开”所包含值的不同类型的引用?
我错了吗? 如果是,为什么Rust被允许这样“欺骗”所有权系统?理论上,我是否能够实现自己的“欺骗”类型?
unsafe
打破正常规则来制作快速和方便的工具。但是除非你确定它们没有漏洞,否则你应该非常小心。 - Alexey Larionov