Přeskočit na obsah
Chyby kompilátoru RustChyba
E0502

E0502 — Nelze vypůjčit jako mutabilní, protože je již vypůjčeno jako imutabilní

Hodnotu nelze mutabilně vypůjčit, dokud je aktivní imutabilní výpůjčka.

rustcargo

Co způsobuje tuto chybu

Rust vynucuje, že mutabilní reference a imutabilní reference na stejná data nemohou existovat zároveň. Imutabilní výpůjčka je stále aktivní v okamžiku, kdy se pokoušíte o mutabilní výpůjčku.

Jak to opravit

Refaktorujte kód tak, aby imutabilní výpůjčka skončila před začátkem mutabilní výpůjčky. Pokud potřebujete nezávislé kopie, naklonujte data. Omezte rozsah imutabilní výpůjčky pomocí bloku.

Příklad

let mut v = vec![1, 2];
let r = &v[0];
v.push(3);
println!("{}", r);
Oficiální dokumentace

Související chybové kódy