当前位置: 代码迷 >> 综合 >> Rust 中的 RefCell
  详细解决方案

Rust 中的 RefCell

热度:2   发布时间:2023-12-12 15:22:31.0

RefCell 与 Cell 基本相同,区别在于 RefCell 读取内容时,返回的是引用,本质上是一个指针。这是因为 RefCell 要包装的数据没有实现 Copy 特性。代码示例如下:

use std::cell::{
    Ref, RefCell};
fn main() {
    let x = RefCell::new("good".to_string());let a = &x;let b = &x;*a.borrow_mut() = "nice".to_string();*b.borrow_mut() = "best".to_string();let y: Ref<String> = x.borrow();println!("x = {:?}", x);println!("y = {:?}", y);
}
---------------------------------------------------
>cargo run
x = RefCell {
     value: "best" }
y = "best"

rust 的这套工具确实做的很漂亮呀!