Rust文档详细介绍了
Rc<RefCell<T>>
,但没有涉及到RefCell<Rc<T>>
,我现在遇到了这个问题。它们是否有效地产生了相同的结果?它们之间有重要的区别吗?Rc<RefCell<T>>
,但没有涉及到RefCell<Rc<T>>
,我现在遇到了这个问题。它们是否有效地产生了相同的结果?它们之间有重要的区别吗?let a = Rc::new(1);
let b = Rc::new(2);
let c = RefCell::new(Rc::clone(&a));
let d = RefCell::new(Rc::clone(&a));
*d.borrow_mut() = Rc::clone(&b); // this doesn't affect c
无法改变a
和b
中的值。这似乎比Rc<RefCell<T>>
要不实用。