Zum Inhalt springen
Rust-Compiler-FehlerFehler
E0505

E0505 — Wert kann nicht aus ausgeliehenem Inhalt verschoben werden

Ein Wert wird verschoben, während er noch von einer Referenz ausgeliehen ist.

rustcargo

Was verursacht diesen Fehler

Sie versuchen, einen Wert zu verschieben (Ownership zu übertragen), der noch eine aktive Ausleihe hat. Das Verschieben würde die vorhandene Referenz ungültig machen, was Rust verhindert.

So beheben Sie ihn

Klonen Sie den Wert statt ihn zu verschieben. Beenden Sie die Ausleihe, bevor Sie den Wert verschieben. Verwenden Sie Referenzen statt Ownership-Übertragung. Strukturieren Sie den Code um, um den Konflikt zwischen Verschieben und Ausleihen zu vermeiden.

Offizielle Dokumentation

Verwandte Fehlercodes