|
|
|
@ -246,7 +246,7 @@ fn main() {
|
|
|
|
|
println!("{}", r3);
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
按照上述规则,这段代码将会报错,因为`r1`和`r2`的不可变引用将持续到`main`函数结束,而在此范围内,我们又借用了`r3`的可变引用,这违反了借用的规则 : 要么多个可变借用,要么一个不可变借用。
|
|
|
|
|
按照上述规则,这段代码将会报错,因为`r1`和`r2`的不可变引用将持续到`main`函数结束,而在此范围内,我们又借用了`r3`的可变引用,这违反了借用的规则 : 要么多个不可变借用,要么一个可变借用。
|
|
|
|
|
|
|
|
|
|
好在,该规则从1.31版本引入NLL后,就变成了:**引用的生命周期从借用处开始,一直持续到最后一次使用的地方**。
|
|
|
|
|
|
|
|
|
@ -510,4 +510,4 @@ fn use_list(list: &List) {
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
至此,生命周期终于完结,两章超级长的内容,可以满足几乎所有对生命周期的学习目标。学完生命周期,意味着你正式入门了Rust,只要再掌握几个常用概念,就可以上手写项目了,下面让我们看看在实际项目中极其常见的功能 - 迭代器.
|
|
|
|
|
至此,生命周期终于完结,两章超级长的内容,可以满足几乎所有对生命周期的学习目标。学完生命周期,意味着你正式入门了Rust,只要再掌握几个常用概念,就可以上手写项目了,下面让我们看看在实际项目中极其常见的功能 - 迭代器.
|
|
|
|
|