Rustコンパイラエラーエラー
E0502E0502 — 不変借用中のため可変借用不可
不変借用がまだ有効な間は、値を可変借用できません。
rustcargo
このエラーの原因
Rustでは、同一データに対して可変参照と不変参照を同時に保持することができません。可変借用を取得しようとした時点で、不変借用がまだ有効です。
修正方法
不変借用が終了してから可変借用が開始されるようコードを再構成してください。独立したコピーが必要な場合はデータをcloneしてください。ブロックを使って不変借用のスコープを制限してください。
例
let mut v = vec![1, 2];
let r = &v[0];
v.push(3);
println!("{}", r);関連するエラーコード
Rustコンパイラエラーエラー
E0599E0599 — 型にメソッドXが見つからない
指定した型にそのメソッドが存在しないか、必要なトレイトがスコープに入っていません。
rustcargo
詳細を表示 Rustコンパイラエラーエラー
E0597E0597 — 借用した値の生存期間が不十分
参照が、指し示しているデータよりも長く生存しています。
rustcargo
詳細を表示 Rustコンパイラエラーエラー
E0133E0133 — unsafe 関数の呼び出しには unsafe ブロックが必要
unsafe な関数または操作が unsafe ブロックの外で使用されている。
rustcargo
詳細を表示 Rustコンパイラエラーエラー
E0308E0308 — match アームの型が一致しない
異なる match アームが互換性のない型を返しています。
rustcargo
詳細を表示 Rustコンパイラエラーエラー
E0384E0384 — イミュータブルな変数への二重代入はできない
変数に再代入しようとしているが、その変数はミュータブルとして宣言されていない。
rustcargo
詳細を表示 Rustコンパイラエラーエラー
E0200E0200 — unsafe トレイトには unsafe impl が必要
unsafe なトレイトは unsafe impl ブロックで実装しなければならない。
rustcargo
詳細を表示