E0382E0382 — Uso di un Valore Spostato
Un valore viene utilizzato dopo essere stato spostato in un'altra variabile o funzione.
Cause di questo errore
Il sistema di ownership di Rust prevede che ogni valore abbia esattamente un proprietario. Quando un valore viene spostato (assegnato a un'altra variabile o passato a una funzione), la variabile originale non può più essere utilizzata. Questo vale per i tipi che non implementano Copy.
Come correggerlo
Clonare il valore prima di spostarlo se è necessario usarlo di nuovo. Usare riferimenti (&T o &mut T) invece di trasferire la proprietà. Implementare il trait Copy per i tipi di piccole dimensioni. Ristrutturare il codice per evitare di usare il valore dopo lo spostamento.
Esempio
let s = String::from("hi");
let s2 = s;
println!("{}", s);Codici di errore correlati
E0609E0609 — Nessun Campo di Nome X sul Tipo
La struct o union non dispone di un campo con il nome specificato.
E0283E0283 — Implementazione di Trait Ambigua
Potrebbero applicarsi più implementazioni di trait e Rust non riesce a determinare quale usare.
E0384E0384 — Impossibile Assegnare Due Volte a una Variabile Immutabile
A una variabile viene riassegnato un valore, ma non era stata dichiarata come mutabile.
E0433E0433 — Risoluzione del Percorso del Modulo Fallita
Il percorso del modulo usato in un'istruzione use o in un percorso di tipo non può essere risolto.
panic-index-out-of-boundsPanic — Indice Fuori dai Limiti
Il programma ha generato un panic perché un indice era fuori dall'intervallo valido per una collezione.
E0412E0412 — Tipo Non Trovato in Questo Scope
Un nome di tipo viene utilizzato ma non è definito né importato nello scope corrente.