本文へスキップ
BecomeCoder

Rustのエラー · エラー2

E0499: cannot borrow as mutable more than once ― 可変借用が二重

同じ値を同時に2つ以上「書き換え可能」で借りると出ます。

出るコード

let mut v = vec![1, 2, 3];
let a = &mut v;
let b = &mut v;   // 2つ目の可変借用
println!("{:?} {:?}", a, b);

エラーメッセージ

error[E0499]: cannot borrow `v` as mutable more than once at a time

直し方

可変借用は同時に1つだけです。片方の使用が終わってから次を借ります(スコープを分ける)。