所有权(系统)是 Rust 最独特的功能,它让 Rust 无需垃圾回收(GC)即可保障内存安全。
所有权规则
首先,让我们看一下所有权规则。在通过示例进行说明时,请牢记以下规则:
- Rust中的每个值都有一个变量,称为其所有者。
- 一次只能有一个所有者。
- 当所有者超出范围时,该值将被删除。
大概思路就是两个水杯A,B和一杯水,A中的水倒入B,水的所有权就是B,A失去了水的所有权,这时你想从A杯里喝水,显然是不可能的了。
如果这个场景结束了呢(方法执行结束)
按照以往语言的经验,例如JAVA/py/go,被GC清理,C/C++需要编程人员手动处理
而Rust不用手动处理和GC清理,编译器处理:当所有权消失时清理。
实现一个数字交换的方法
fn main() {
let mut num1 = 1;
let mut num2 = 2;
println!("num1:{} , num2:{}", num1,num2);
let mut num3 = num1;
num1 = num2;
num2 = num3;
println!("num1:{} , num2:{}", num1,num2);
}