Rust 简明教程

Rust 借用与引用

1. 借用与引用

有时候,您希望使用某个值,但又不想获取它的所有权。

Rust 允许您使用引用(reference)来实现这一点——这个过程被称为借用(borrowing)

2. 什么是引用?

引用允许您查看一个值而不拥有它。您可以使用 & 符号来创建一个引用:

示例

let a = String::from("Hello");
let b = &a;

println!("a = {}", a);
println!("b = {}", b);

因为 b 只是在借用这个值,所以 a 仍然拥有它的所有权。

3. 可变引用

如果您想要通过引用来修改一个值,您需要将该引用声明为 mut(可变的):

示例

let mut name = String::from("John");
let name_ref = &mut name;

name_ref.push_str(" Doe");
println!("{}", name_ref); // John Doe

注意: 在同一时间内,对于同一个值,您只能拥有一个可变引用!这可以防止数据竞争现象的发生。

4. 为什么借用如此重要?

借用机制可以帮助您安全地重复使用数据,而无需将其所有权转移出去。

  • 它允许您在不夺取所有权的情况下使用变量。
  • 它避免了进行克隆 (cloning) 操作,因为对于大型数据而言,克隆操作不仅消耗内存,还非常耗时。
  • 它使您的程序变得更加安全且运行速度更快。