|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
# 引用与借用
|
|
|
|
|
|
|
|
|
|
上节中提到,如果仅仅是支持所有权转移,那会让程序变得复杂。 能否像其它编程语言一样,使用某个变量的指针或者引用呢?答案是有的。
|
|
|
|
|
上节中提到,如果仅仅支持通过转移所有权的方式获取一个值,那会让程序变得复杂。 Rust能否像其它编程语言一样,使用某个变量的指针或者引用呢?答案是可以。
|
|
|
|
|
|
|
|
|
|
Rust通过`借用(Borrowing)`这个概念来达成上述的目的: **获取变量的引用,称之为借用(borrowing)**。正如现实生活中,如果一个人拥有某样东西,你可以从他那里借来,当使用完毕后,也必须要物归原主.
|
|
|
|
|
|
|
|
|
@ -297,4 +297,4 @@ fn no_dangle() -> String {
|
|
|
|
|
|
|
|
|
|
总的来说,借用规则如下:
|
|
|
|
|
- 同一时刻,你只能拥有要么一个可变引用, 要么任意多个不可变引用
|
|
|
|
|
- 引用必须总是有效的
|
|
|
|
|
- 引用必须总是有效的
|
|
|
|
|