2
條款我寫了下面的函數來求和的迭代器:簡化與地方重複相關類型限制
fn sum_iter<I>(s : I, init : &I::Item) -> I::Item
where I : Iterator + Clone, <I as Iterator>::Item : Add< I::Item, Output = I::Item> + Copy {
s.clone().fold(*init, |acc, item| acc + item)
}
這下rustc-1.0.0-β編譯罰款,但是這將是很好,如果能避免重複I::Item
四次,而是指一個類型T
,並說只有一次Iterator::Item = T
只有一次。什麼是正確的方法來做到這一點?