Rust中的借用与引用详解
💡
原文英文,约2100词,阅读约需8分钟。
📝
内容提要
Rust的引用是指向特定数据的变量,可以是栈变量或堆变量。栈上的数据复制便宜,堆上的数据复制昂贵。借用是指变量指向另一个变量的数据,不拥有所有权。可变引用用于修改数据。引用有生命周期,可以通过添加撇号和字母来标记。
🎯
关键要点
- Rust的引用是指向特定数据的变量,可以是栈变量或堆变量。
- 栈上的数据复制便宜,堆上的数据复制昂贵。
- 借用是指变量指向另一个变量的数据,不拥有所有权。
- 可变引用用于修改数据。
- 引用有生命周期,可以通过添加撇号和字母来标记。
- Rust的所有权系统中,只有一个变量可以拥有特定数据。
- 栈上的固定大小数据(如整数、浮点数、布尔值)存储在栈上,动态大小数据存储在堆上。
- 借用时创建一个指向所有者地址的特殊指针,称为引用。
- 引用的有效性受到所有权转移的影响。
- 函数参数可以传递所有权和引用,使用引用时变量仍然有效。
- 可变引用需要在变量前加上mut,并且在创建可变引用时,其他引用会失效。
- 引用不能超出所有者的生命周期,Rust通过生命周期来管理引用的有效性。
- 在函数中返回引用时,需要确保返回的引用的生命周期与参数一致。
- 可以通过在函数签名中添加生命周期参数来解决多个引用的生命周期问题。
➡️