Borrow Checker e Lifetimes
mismatched types: expected `&str`, found `String` – Rust E0308_REF
L'errore compare quando una funzione o espressione richiede un prestito a un dato (&T come &str) ma viene passato l'oggetto di proprietà per valore (T come String), risolvibile anteponendo l'operatore di borrow &.
Cosa significa questo errore?
L'errore compare quando una funzione o espressione richiede un prestito a un dato (&T come &str) ma viene passato l'oggetto di proprietà per valore (T come String), risolvibile anteponendo l'operatore di borrow &.
Messaggio originale
mismatched types: expected `&str`, found `String`Contesto e parole chiave
Alias
- E0308 borrow
- expected reference found struct
Messaggi alternativi
- tipo atteso riferimento trovato valore proprio
Prodotti
- Rust Compiler (rustc) / Cargo / Tokio
Piattaforme
- Linux
- macOS
- Windows
Parole chiave
- Borrow Checker e Lifetimes
- errore-rust-e0308-borrow-expected-ref
- rust
- rust.borrowck.e0308-mismatched-types-borrow-expected-ref
Cause possibili
Causa tecnica per Errore Rust E0308: expected reference, found owned value (&str vs String)
L'errore compare quando una funzione o espressione richiede un prestito a un dato (&T come &str) ma viene passato l'oggetto di proprietà per valore (T come String), risolvibile anteponendo l'operatore di borrow &.
molto comuneDiagnosi
Verifica di compilazione e diagnostica per Errore Rust E0308: expected reference, found owned value (&str vs String)
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 check --explain E0308_REFRisoluzione
Risoluzione standard per Errore Rust E0308: expected reference, found owned value (&str vs String)
Applica le correzioni consigliate per conformarsi alle regole di ownership, tipi o runtime in Rust.
- Ispezionare la riga evidenziata dal compilatore rustc
- Riformulare il codice secondo le linee guida della gestione ownership e borrow
- Eseguire cargo check per confermare la risoluzione
cargo checkDomande frequenti
Cosa significa Errore Rust E0308: expected reference, found owned value (&str vs String)?
L'errore compare quando una funzione o espressione richiede un prestito a un dato (&T come &str) ma viene passato l'oggetto di proprietà per valore (T come String), risolvibile anteponendo l'operatore di borrow &.
Approfondimenti
- Rust Compiler Error Index / Rust Book documentazione_ufficiale