期待される型と違う型を渡すと出ます。
出るコード
fn double(n: i32) -> i32 { n * 2 }
fn main() {
let x = "5";
println!("{}", double(x)); // &str を渡した
}
エラーメッセージ
error[E0308]: mismatched types
expected `i32`, found `&str`
直し方
正しい型を渡します。文字列を数値化するなら x.parse::<i32>().unwrap()。