rustp-26.RefCell智能指针
RefCell介绍
- 内部可变性:允许在使用不可变引用的时候改变数据
- 通过RefCell
在运行时 检查借用规则(通常情况下是在编译的过程中检查借用规则)
RefCell代表其数据的唯一所有权
Rc和RefCell都只能用于单线程场景 - 选择Box
、Rc 或者RefCell的理由:
(1). Rc允许数据有多个所有者;Box 或者RefCell 仅仅只有一个单一所有者
(2). Box允许在编译过程中执行不可变或者可变借用检查;Rc 仅仅允许在编译时执行
不可变借用检查;RefCell允许在运行过程中执行不可变或者可变借用检查
(3).RefCell允许在运行时执行可变借用检查,所以RefCell可在数据本身不可变的过程
中执行修改内部值
1 |
|
Comment