未能提早释放的 RefCell
在写代码时发现有些情况通过 RefCell::borrow
方法所产生的不可变引用会比想象中的存活更长时间.
如
{{#include ../../codes/rust/src/bin/2021-11-06.rs}}
Some(idx)
中 idx 为 usize, 因此我以为右边的不可变引用在 x.borrow().iter().position(|&i| i == 3)
结束后会提前释放, 实际上这个不可变引用会一直存活, 导致 borrow_mut
panic.