此代码可以正常工作:
let list_of_integers = vec![1, 2, 3, 4];
let avg: f64 = f64::from(list_of_integers.iter().sum::<i32>()) / f64::from(list_of_integers.len() as i32);
但是如果我省略sum()
的turbofish,则会收到此错误消息:
|
4 | let avg: f64 = f64::from(list_of_integers.iter().sum()) / f64::from(list_of_integers.len() as i32);
| --- ^^^^^^^^^ cannot infer type for type `f64`
| |
| consider giving `avg` a type
|
= note: cannot resolve `f64: std::convert::From<_>`
= note: required by `std::convert::From::from`
这些错误消息是什么意思?我是否以某种方式更改了语法,并且: f64
不再是avg
的类型?
sum()
将返回哪种类型”或“我不知道此from
函数将接受哪种类型”-不幸的是,在这种情况下,它选择了不太清晰的一种:)] >