Update chapter_3_7.md

This commit is contained in:
令狐一冲
2023-05-17 14:57:25 +08:00
committed by GitHub
parent 9aeaae05cc
commit d1f677957c

View File

@@ -1,4 +1,4 @@
## 3.7.所有权(Ownership) ---------- andy
## 3.7.所有权(Ownership)
### 3.7.1 所有权介绍
所有权是Rust最为与众不同的特性它让Rust无需垃圾回收即可保证内存安全。
@@ -207,7 +207,7 @@ fn main() {
不过不是所有的类型都能使用clone方法进行深拷贝只有实现了Clone trait的类型才能调用该方法。
#### 7. Copy
按照Rust所有权规则第二条在任意时刻值有且仅有一个所有者。所以当let a = b发生时就将变量b拥有的值移到了a上此时a应该回到未初始状态但实际情况并不一定。不一定的原因是部分类型实现了Copy trait在值移动时会对值进行自动拷贝能让变量a仍拥有原来的值。
按照Rust所有权规则第二条**在任意时刻,值有且仅有一个所有者**。所以当let a = b发生时就将变量b拥有的值移到了a上此时a应该回到未初始状态但实际情况并不一定。不一定的原因是部分类型实现了Copy trait在值移动时会对值进行自动拷贝能让变量a仍拥有原来的值。
Rust中默认实现了Copy trait的类型有
@@ -264,4 +264,4 @@ fn takes_and_gives_back(a_string: String) -> String { // a_string 进入作用
}
```
关于所有权的总结:将值赋给另一个变量时移动它。当持有堆中数据值的变量离开作用域时,其值将通过 drop函数后续讲解 被清理掉,除非数据被移动为另一个变量所有。
**关于所有权的总结:将值赋给另一个变量时移动它。当持有堆中数据值的变量离开作用域时,其值将通过 drop函数后续讲解 被清理掉,除非数据被移动为另一个变量所有。**