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

E0382 — Použití přesunuté hodnoty

Hodnota je použita poté, co byla přesunuta do jiné proměnné nebo funkce.

rustcargo

Co způsobuje tuto chybu

Systém vlastnictví v Rustu říká, že každá hodnota má právě jednoho vlastníka. Po přesunu hodnoty (přiřazení do jiné proměnné nebo předání funkci) nelze původní proměnnou nadále použít. Platí pro typy, které neimplementují Copy.

Jak to opravit

Před přesunem hodnotu naklonujte pomocí clone(), pokud ji potřebujete použít znovu. Místo přenosu vlastnictví použijte reference (&T nebo &mut T). Pro malé typy implementujte trait Copy. Refaktorujte kód tak, aby hodnota nebyla použita po přesunu.

Příklad

let s = String::from("hi");
let s2 = s;
println!("{}", s);
Oficiální dokumentace

Související chybové kódy