cannot borrow `x` as mutable because it is also borrowed as immutable – Rust E0502

E0502

L'errore E0502 si verifica quando si tenta di creare un riferimento mutabile (&mut) a un dato mentre esiste ancora almeno un riferimento immutabile (&) attivo nello stesso ambito.

Cosa significa questo errore?

L'errore E0502 si verifica quando si tenta di creare un riferimento mutabile (&mut) a un dato mentre esiste ancora almeno un riferimento immutabile (&) attivo nello stesso ambito.

Messaggio originale

cannot borrow `x` as mutable because it is also borrowed as immutable

Contesto e parole chiave

Alias

  • cannot borrow as mutable because borrowed as immutable
  • E0502

Messaggi alternativi

  • prestito mutabile impossibile con prestito immutabile attivo

Prodotti

  • Rust Compiler (rustc) / Cargo / Tokio

Piattaforme

  • Linux
  • macOS
  • Windows

Parole chiave

  • Borrow Checker e Lifetimes
  • errore-rust-e0502-cannot-borrow-mutable
  • rust
  • rust.borrowck.e0502-cannot-borrow-mutable-because-immutable

Cause possibili

Causa tecnica per Errore Rust E0502: cannot borrow as mutable because it is also borrowed as immutable

L'errore E0502 si verifica quando si tenta di creare un riferimento mutabile (&mut) a un dato mentre esiste ancora almeno un riferimento immutabile (&) attivo nello stesso ambito.

molto comune

Diagnosi

Verifica di compilazione e diagnostica per Errore Rust E0502: cannot borrow as mutable because it is also borrowed as immutable

Eseguire il comando cargo check per visualizzare l'output dettagliato del compilatore con suggerimenti (explain).

Come leggere il risultato. Fornisce la spiegazione estesa dell'errore di compilazione o stack trace del panic.

cargo
cargo check --explain E0502

Risoluzione

Risoluzione standard per Errore Rust E0502: cannot borrow as mutable because it is also borrowed as immutable

Difficoltà: mediaRischio: basso

Applica le correzioni consigliate per conformarsi alle regole di ownership, tipi o runtime in Rust.

  1. Ispezionare la riga evidenziata dal compilatore rustc
  2. Riformulare il codice secondo le linee guida della gestione ownership e borrow
  3. Eseguire cargo check per confermare la risoluzione
cargo
cargo check

Domande frequenti

Cosa significa Errore Rust E0502: cannot borrow as mutable because it is also borrowed as immutable?

L'errore E0502 si verifica quando si tenta di creare un riferimento mutabile (&mut) a un dato mentre esiste ancora almeno un riferimento immutabile (&) attivo nello stesso ambito.

Approfondimenti

Schede correlate