rust语言学习笔记(指针四)Rc<RefCell<T>>(单线程共享可变性)

rust语言学习笔记(指针四)Rc<RefCell<T>>(单线程共享可变性)
双向链表/图的反向指针‌节点之间互相引用且可能需要修改节点内容。‌观察者模式/事件系统‌多个观察者持有对主体的引用主体状态变化时需要通知所有观察者或者观察者需要更新自身状态。‌缓存与惰性计算‌多个所有者共享一个缓存对象并在运行时更新缓存内容。usestd::{cell::RefCell,rc::Rc};fnmain(){letvRc::new(RefCell::new(10));// 创建一个可变的引用计数器letv1v.clone();// rc的引用计数器1println!(v 的值: {},v1.borrow());// 只读借用1letv2v.clone();// rc的引用计数器1*v2.borrow_mut()20;// 只写借用1println!(v 的值: {},v.borrow());// 只读借用2letv3v.clone();// rc的引用计数器1*v3.borrow_mut()5;// 只写借用2println!(v 的值: {},v.borrow());// 只读借用3}