Improve Ch13

This commit is contained in:
Unisko PENG 2023-04-25 17:33:28 +08:00
parent b3c110894a
commit 6ee991cc26

View File

@ -255,7 +255,7 @@ $ cargo run le
在调用闭包之后:[1, 2, 3, 7]
```
请注意在那个 `borrows_mutably` 的定义与调用之间,不再有一个 `println!`:在 `borrows_mutably` 被定义时,他就捕获了到 `list` 的一个可变引用。在闭包被调用之后,这里没有再度使用那个闭包因此这个可变借用就结束了。由于当存在着一个可变借用a mutable borrow不允许有其他的借用因此在该闭包定义与其调用期间打印那个 `list` 的不可变借用是不被允许的。请尝试在这里添加一个 `println!`,来看看会得到什么消息!
请注意在 `borrows_mutably` 的定义与调用之间,不再有 `println!``borrows_mutably` 被定义时,其就捕获了到 `list` 的可变引用。由于该闭包被调用后,咱们没有再使用那个闭包因此这个可变借用就结束了。由于当存在着一个可变借用a mutable borrow不允许有其他的借用因此在该闭包定义与其调用期间打印那个 `list` 的不可变借用是不被允许的。请尝试在这里添加一个 `println!`,来看看会得到什么消息!
在即使闭包的函数体并不严格需要所有权,而仍打算强制要求闭包取得他所使用的环境中一些值的所有权时,那么就可以在参数清单前,使用 `move` 关键字。