foldT 方法
- T initialValue,
- T combine (
) - T previousValue,
- E element
继承
通过迭代将集合中的每个元素与现有值相结合,减少集合到一个单一值
使用 initialValue
作为初始值,然后遍历元素,并使用 combine
函数更新值,就像这样:
var value = initialValue;
for (E element in this) {
value = combine(value, element);
}
return value;
计算可迭代对象总和的示例
final numbers = <double>[10, 2, 5, 0.5];
const initialValue = 100.0;
final result = numbers.fold<double>(
initialValue, (previousValue, element) => previousValue + element);
print(result); // 117.5
实现
T fold<T>(T initialValue, T combine(T previousValue, E element)) {
var value = initialValue;
int length = this.length;
for (int i = 0; i < length; i++) {
value = combine(value, elementAt(i));
if (length != this.length) {
throw ConcurrentModificationError(this);
}
}
return value;
}