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

E0499 — Nelze mutabilně vypůjčit více než jednou

Hodnota je mutabilně vypůjčena více než jednou ve stejnou dobu.

rustcargo

Co způsobuje tuto chybu

Borrow checker Rustu zabraňuje současné existenci dvou mutabilních referencí na stejná data. Tím se předchází datovým závodům a zajišťuje bezpečnost paměti.

Jak to opravit

Refaktorujte kód tak, aby v jednu chvíli existovala pouze jedna mutabilní výpůjčka. Omezte rozsah první mutabilní výpůjčky blokem. Pro vzory interní mutability zvažte použití Cell, RefCell nebo Mutex.

Příklad

let mut s = String::new();
let r1 = &mut s;
let r2 = &mut s;
Oficiální dokumentace

Související chybové kódy