Rust 所有权规则简述
对于低级语言而言,对象的回收往往是一个难题。一个对象创建后,往往会在各个地方传递,由于对象的引用者们生命周期不尽相同,也就不知道何时、由谁来负责对象的回收。
Rust 所有权规则是如何解决这个问题的呢?它把对象分为可变对象和不可变对象,对象的引用者分为所有者和借用者。下面是我根据自己的理解做的总结:
一个对象有且只能有一个所有者,对象的回收由其所有者负责,对象的所有权可以转移。
借用分为可变借用和不可变借用:
- 多个不可变借用可共存;
- 可变借用不可和其他借用共存,无论借用是可变还是不可变;
- 对象所有者不能在不可变借用前写对象,不能在可变借用前读写对象;
- 可变对象可以有可变和不可变借用,不可变对象只能有不可变借用;
对象的所有权转移时,对象的可变性可以发生更改。
不能共存指的是它们的作用域不能有交集。一个变量的作用域从声明的地方开始,到最后一次使用的位置结束,这一点和其他语言不同。

