Библиотеки » Основная библиотека (dart:core) » Iterable » fold
функция 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 - Приводит все элементы коллекции к единственному значению