From d1f677957c77428b9114498932a94e2383259d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=A4=E7=8B=90=E4=B8=80=E5=86=B2?= <43949039+anonymousGiga@users.noreply.github.com> Date: Wed, 17 May 2023 14:57:25 +0800 Subject: [PATCH] Update chapter_3_7.md --- src/chapter_3/chapter_3_7.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/chapter_3/chapter_3_7.md b/src/chapter_3/chapter_3_7.md index 6865982..06cce14 100644 --- a/src/chapter_3/chapter_3_7.md +++ b/src/chapter_3/chapter_3_7.md @@ -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函数(后续讲解) 被清理掉,除非数据被移动为另一个变量所有。**