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

E0382 — Użycie przesuniętej wartości

Wartość jest używana po tym, jak została przeniesiona do innej zmiennej lub funkcji.

rustcargo

Co powoduje ten błąd

System własności Rusta zakłada, że każda wartość ma dokładnie jednego właściciela. Gdy wartość jest przenoszona (przypisana do innej zmiennej lub przekazana do funkcji), oryginalna zmienna przestaje być dostępna. Dotyczy typów, które nie implementują Copy.

Jak to naprawić

Sklonuj wartość przed przeniesieniem, jeśli musisz jej użyć ponownie. Używaj referencji (&T lub &mut T) zamiast przekazywania własności. Zaimplementuj cechę Copy dla małych typów. Przepisz kod, by unikać używania wartości po jej przeniesieniu.

Przykład

let s = String::from("hi");
let s2 = s;
println!("{}", s);
Oficjalna dokumentacja

Powiązane kody błędów