本文へスキップ
BecomeCoder

Rustのエラー · エラー3

E0502: 不変借用中に書き換えた

読み取り用に借りている間は、書き換え用に借りられません。

出るコード

let mut v = vec![1, 2, 3];
let first = &v[0];        // 不変借用
v.push(4);                // 借用中に書き換え
println!("{}", first);

エラーメッセージ

error[E0502]: cannot borrow `v` as mutable because it is also borrowed as immutable

直し方

不変借用(first)を使い終えてから push します。処理の順序を入れ替えます。