fold<T> 方法

T fold<T>(
  1. T initialValue,
  2. T combine(
    1. T previousValue,
    2. 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;
  for (E element in this) value = combine(value, element);
  return value;
}