mismatched types: expected `&str`, found `String` – Rust E0308_REF

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 comune

Diagnosi

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
cargo check --explain E0308_REF

Risoluzione

Risoluzione standard per Errore Rust E0308: expected reference, found owned value (&str vs String)

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 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

Schede correlate