pointers - 何时使用 Box 而不是引用?

标签 pointers rust

我是 Rust 的新手,我想了解什么时候应该使用 Box 而不是常规引用。

我能找到的所有示例都展示了如何使用 Box,但是没有一个示例说明在什么情况下应该使用它们而不是常规的 & 引用。

最佳答案

(对 Shepmaster 的出色回答的补充:另一种思考所有权的方式)

您始终需要思考:值(value)存在在哪里? 🏠

例如,数据可以存在于堆栈中、可执行文件的某个特殊位置或Box 中。另一方面,引用不是存在的地方——它只是指向一些存在其他地方的数据。所以:

  • 如果您知道您要使用的数据有一个住所:您通常可以只使用一个引用(地址)来访问它(访问它 ✈)。
  • 如果你的数据没有地方住,那就把它放在一个盒子里,给它一个家🏠♥

章节ownershipborrowing Rust 书中的内容是了解这些概念的好方法。

关于pointers - 何时使用 Box 而不是引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36117057/

相关文章:

c++ - 如何将 void (myClass::*)() 转换为 void (*)()

c - 为堆栈上的变量声明指针有什么意义吗?

c++ - Boost Python , python 函数和 ptrs

rust - 循环中的可变借用

string - 如何在 Rust 中将字符串转换为向量?

c - 在 C 中使用指针时一元运算符的放置

c++ - 自定义 C++ 渲染系统中的性能比较。为不同的类调用渲染函数

rust - 使用未声明的类型或模块 `HttpResponse` : not found in this scope

rust - 如何匹配Some(&T)?

rust - 如何惯用地复制切片?