E0499E0499 — Impossibile Prendere in Prestito come Mutabile Più di una Volta
Un valore viene preso in prestito mutabilmente più di una volta contemporaneamente.
Cause di questo errore
Il borrow checker di Rust impedisce che esistano contemporaneamente due riferimenti mutabili agli stessi dati. Questo previene le data race e garantisce la sicurezza della memoria.
Come correggerlo
Ristrutturare il codice in modo che esista un solo prestito mutabile alla volta. Usare un blocco per limitare lo scope del primo prestito mutabile. Considerare l'uso di Cell, RefCell o Mutex per i pattern di mutabilità interna.
Esempio
let mut s = String::new();
let r1 = &mut s;
let r2 = &mut s;Codici di errore correlati
E0382E0382 — Uso di un Valore Spostato
Un valore viene utilizzato dopo essere stato spostato in un'altra variabile o funzione.
E0152E0152 — lang Item Duplicato
Un language item (#[lang = ...]) è definito più di una volta.
E0621E0621 — Lifetime Esplicita Richiesta
Un parametro di funzione richiede un'annotazione di lifetime esplicita per soddisfare il borrow checker.
E0277E0277 — Il Tipo Non Implementa Sized
Un tipo a dimensione dinamica (DST) viene usato dove è richiesto un tipo Sized.
panic-divide-by-zeroPanic — Divisione per Zero
Il programma ha generato un panic a causa di una divisione intera per zero.
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.