10【借用·规则】引用 (``, `mut`):安全、高效地访问数据
系列: Rust 精进之路:构建可靠、高效软件的底层逻辑
作者: 码觉客
发布日期: 2025年4月20日
引言:所有权的“限制”与“变通”之道
在上一篇【所有权·核心】中,我们揭示了 Rust 如何通过所有权规则和移动 (Move) 语义来保证内存安全,避免了垃圾回收器的同时,也防止了诸如二次释放等内存错误。然而,我们也看到,所有权的转移有时显得过于“霸道”——一旦将值(如 String
)传递给函数或赋给新变量,原来的所有者就失去了对它的控制权。
如果我们仅仅是想让一个函数读取一下数据,或者临时修改一下数据,并不希望交出所有权,该怎么办呢?难道每次都得把所有权移交过去,再让函数把所有权还回来吗?这显然不够方便,有时甚至是不可能的。
为了解决这个问题,Rust 引入了借用 (Borrowing) 的概念,通过引用 (References) 来实现。引用允许我们创建一个指向值的“指针”,让其他代码可以访问这个值,而无需获得其所有权。这就像你把书借给朋友看