E0308E0308 — Neshodující se typy
Očekávaný typ neodpovídá skutečně poskytnutému typu.
Co způsobuje tuto chybu
Funkce vrací jiný typ, než je deklarován, proměnné je přiřazen nekompatibilní typ, nebo větev match vrací jiný typ. Striktní typový systém Rustu vyžaduje přesnou shodu typů bez implicitních konverzí.
Jak to opravit
Převeďte hodnotu na očekávaný typ pomocí .into(), as nebo trait From/Into. Opravte anotaci návratového typu tak, aby odpovídala skutečné vrácené hodnotě. Podle potřeby použijte .to_string(), .as_str() nebo jiné konverzní metody.
Příklad
fn main() {
let x: i32 = "hello";
}Související chybové kódy
panic-stack-overflowPanic — Přetečení zásobníku
Program zpanikoval v důsledku nadměrného využití zásobníku, typicky způsobeného hlubokou rekurzí.
E0428E0428 — Duplicitní definice
Položka se stejným názvem je v tomtéž rozsahu definována více než jednou.
E0599E0599 — Na typu nebyla nalezena metoda X
Metoda na daném typu neexistuje, nebo požadovaný trait není v rozsahu.
E0600E0600 — Nelze aplikovat unární operátor
Unární operátor je aplikován na typ, který ho nepodporuje.
unused_mutVarování o Nevyužitém Mut
Proměnná je deklarována jako mutabilní, ale ve skutečnosti nikdy mutována.
E0271E0271 — Neshoda typů v přidruženém typu
Přidružený typ v implementaci traitu neodpovídá očekávanému typu.