mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2024-12-26 12:50:42 +08:00
Update Ch15
This commit is contained in:
parent
93088148c8
commit
a7bbd4e437
@ -991,7 +991,7 @@ error: test failed, to rerun pass `--lib`
|
||||
|
||||
请注意该代码是以消息 `already borrowed: BorrowMutError` 终止运行的。这正是 `RefCell<T>` 处理运行时违反借用规则的方式。
|
||||
|
||||
选择在运行时而不是编译时捕获借用错误,正如我们在这里所做的那样,意味着咱们可能会在开发过程后期,才发现代码中的错误:可能直到咱们的代码部署到生产环境中,才发现。此外,由于在运行时而不是编译时记录借用,咱们的代码会招致小的运行时性能损失。但是,使用 `RefCell<T>` 可以编写出模拟对象,该对象可以修改自身来记录咱们在仅允许不可变值的上下文中使用他时看到的消息。咱们可以使用 `RefCell<T>`,尽管他需要权衡取舍以获得比常规引用所提供的更多功能。
|
||||
选择在运行时而不是编译时捕获借用错误,正如我们在这里所做的那样,意味着咱们可能会在开发过程后期,才发现代码中的错误:可能直到咱们的代码部署到生产环境中才发现。此外,由于在运行时而不是编译时记录借用,咱们的代码会招致小的运行时性能损失。但是,使用 `RefCell<T>` 可以编写出模拟对象,该对象可以修改自身,来记录在咱们仅允许不可变值的上下文中使用他时,其所见到的消息。尽管 `RefCell<T>` 为获得比常规引用所提供的更多功能而有所取舍,咱们可以使用他。
|
||||
|
||||
|
||||
### 通过结合 `Rc<T>` 与 `RefCell<T>`,实现可变数据的多个所有者
|
||||
|
Loading…
Reference in New Issue
Block a user