【发布时间】:2017-09-13 10:28:55
【问题描述】:
pub struct Table<T> {
table: Vec<Vec<T>>
}
impl<i32> Display for Table<i32>
where i32: Display
{
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
for (index, line) in self.table.iter().enumerate() {
write!(f, "{}:\t", index+1);
let mut sum = 0i32;
for task in line {
write!(f, "{} ", task);
sum += *task;
}
write!(f, " : {}\n", sum);
}
Result::Ok(())
}
}
此代码会导致令人困惑的错误消息:
error[E0308]: mismatched types
--> src/table.rs:48:24
|
48 | sum += *task;
| ^^^^^ expected i32, found type parameter
|
= note: expected type `i32` (i32)
= note: found type `i32` (type parameter)
我不知道该怎么办。
【问题讨论】:
标签: rust