我是 Rust 的新手,我想了解什么时候应该使用 Box
而不是常规引用。
我能找到的所有示例都展示了如何使用 Box
,但是没有一个示例说明在什么情况下应该使用它们而不是常规的 &
引用。
最佳答案
(对 Shepmaster 的出色回答的补充:另一种思考所有权的方式)
➡ 您始终需要思考:值(value)存在在哪里? 🏠
例如,数据可以存在于堆栈中、可执行文件的某个特殊位置或Box
中。另一方面,引用不是存在的地方——它只是指向一些存在其他地方的数据。所以:
- 如果您知道您要使用的数据有一个住所:您通常可以只使用一个引用(地址)来访问它(访问它 ✈)。
- 如果你的数据没有地方住,那就把它放在一个盒子里,给它一个家🏠♥
关于pointers - 何时使用 Box 而不是引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36117057/