We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents e7f8779 + 70a81d1 commit afd7cecCopy full SHA for afd7cec
1 file changed
12-ownership-system/12-02-borrowing_references.md
@@ -1,7 +1,7 @@
1
**13.2 引用&借用(References&Borrowing)**
2
-------------
3
4
-如上所示,Owership让我们改变一个变量的值变的“复杂”,那能否像其他编程语言那样随意改变变量的值呢?答案是有的。
+如上所示,Owership让我们改变一个变量的值变得“复杂”,那能否像其他编程语言那样随意改变变量的值呢?答案是有的。
5
所有权系统允许我们通过“Borrowing”的方式达到这个目的。这个机制非常像其他编程语言中的“读写锁”,即同一时刻,只能拥有一个“写锁”,或只能拥有多个“读锁”,不允许“写锁”和“读锁”在同一时刻同时出现。当然这也是数据读写过程中保障一致性的典型做法。只不过Rust是在编译中完成这个(Borrowing)检查的,而不是在运行时,这也就是为什么其他语言程序在运行过程中,容易出现死锁或者野指针的问题。
6
7
@@ -33,10 +33,10 @@ fn main() {
33
34
###规则
35
36
- **1. 同一时刻,最多只有一个可变借用(&mut T),或者2。**
37
- **2. 同一时刻,可有0个或多个不可变借用(&T)但不能有任何可变借用。**
38
- **3. 借用在离开作用域后释放。**
39
- **4. 在可变借用释放前不可访问源变量。**
+1. 同一时刻,最多只有一个可变借用(&mut T),或者2。
+2. 同一时刻,可有0个或多个不可变借用(&T)但不能有任何可变借用。
+3. 借用在离开作用域后释放。
+4. 在可变借用释放前不可访问源变量。
40
41
###可变性
42
Borrowing也分“不可变借用”(默认,**&T**)和“可变借用”(**&mut T**)。
0 commit comments