use std::rc::Rc;
use std::cell::RefCell;
fn main() {
let c = Rc::new(RefCell::new("aaa"));
let c2 = c.clone();
*c.borrow_mut() = "bbb";
println!("{}", c2.borrow())
}
こう定義すればすべての参照がなくなってから破棄されるmutableな値を定義できる
そんなことする必要がなかった!!*(*c)
のあたりが忘れそうなのでメモ
ちなみに thread_local!
を使いつつ変更可能な値を外に出したい時とかに使う(そのためにRcでラップした値が必要になったので調べてた)
追記.
@Pctg-x8 さんにコメント頂いたので修正させて頂きました 🙇