метод expand
Iterable<T> expand<T>(Расширяет каждый элемент этого Iterable в ноль или более элементов.
Полученный Iterable проходит через элементы, возвращаемые f для каждого элемента этого, в порядке итерации.
Возвращаемый Iterable ленивый и вызывает f для каждого элемента этого каждый раз, когда он итерируется.
Пример:
var pairs = [[1, 2], [3, 4]]; var flattened = pairs.expand((pair) => pair).toList(); print(flattened); // => [1, 2, 3, 4]; var input = [1, 2, 3]; var duplicated = input.expand((i) => [i, i]).toList(); print(duplicated); // => [1, 1, 2, 2, 3, 3]
Исходный код
Iterable<T> expand<T>(Iterable<T> f(E element)) =>
new ExpandIterable<E, T>(this, f);
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-collection/IterableMixin/expand.html