Przejdź do treści
Błędy kompilatora RustBłąd
E0502

E0502 — Nie można pożyczyć jako mutowalnego, bo już pożyczono jako niemutowalny

Wartość nie może być pożyczona mutowalnie, gdy aktywne jest jeszcze niemutowalne pożyczenie.

rustcargo

Co powoduje ten błąd

Rust wymusza, że nie można jednocześnie posiadać mutowalnej i niemutowalnej referencji do tych samych danych. Niemutowalne pożyczenie jest nadal aktywne w momencie, gdy próbujesz pobrać mutowalne.

Jak to naprawić

Przepisz kod tak, by niemutowalne pożyczenie kończyło się przed rozpoczęciem mutowalnego. Sklonuj dane, jeśli potrzebujesz niezależnych kopii. Ogranicz zasięg niemutowalnego pożyczenia blokiem.

Przykład

let mut v = vec![1, 2];
let r = &v[0];
v.push(3);
println!("{}", r);
Oficjalna dokumentacja

Powiązane kody błędów