функция Iterable::fold

Приводит все элементы коллекции к единственному значению с учётом начального значения

Синтаксис

dynamic
Iterable.fold
(var initialValue, dynamic combine(var previousValue, E element))

Передаваемые параметры

var initialValue, dynamic combine(var previousValue, E element)

Возвращаемое значение

dynamic

Описание

Метод fold последовательно вызывает пользовательскую callback-функцию dynamic combine(var previousValue, E element), передавая ей результат её выполнения на предыдущей итерации и очередной элемент массива, пока не будет обработана вся коллекция.

Первым аргументом метод принимает инициирующее значение, которое будет передано при первом вызове callback-функции, а вторым - саму callback-функцию dynamic combine(var previousValue, E element). В итоге метод вернёт единственное значение - результат последнего вызова callback-функции.

  • функция combine(var previousValue, E element) может возвращать результаты произвольного типа, а следовательно, тип возвращаемого объекта может быть произвольным, не E.

Заметки

Примеры использования:


import "dart:core";

void main() {
  // получим сумму элементов массива
  iterable.fold(0, (prev, element) => prev + element);

  // получим произведение элементов массива
  iterable.fold(1, (prev, element) => prev + element);
}
						

Смотрите также

Iterable::reduce - Приводит все элементы коллекции к единственному значению

Официальная документация (английский)