Code Fix

上級already borrowed: BorrowMutError パニックの原因と直し方 › パターン3

already borrowed: BorrowMutError パニックの原因と直し方

RefCellは借用規則を実行時にチェックする仕組みです。

 1  use std::cell::RefCell;
 2  fn main() {
 3      let cache = RefCell::new(10);
 4      let x1 = cache.borrow_mut();
 5      _________
            ^
 6      let x2 = cache.borrow_mut();
 7      println!("{}", x2);
 8  }
thread 'main' panicked at main.rs:6:20: already borrowed: BorrowMutError

空欄を埋めて実行を通す

広告
広告スロット(未設定)

already borrowed: BorrowMutError パニックの原因と直し方

borrow_mut()で可変借用した値がまだ生きている間に、もう一度borrow_mut()やborrow()を呼ぶとパニックします。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)