Iterable< E>.generate конструктор
Создаёт Iterable, который генерирует свои элементы динамически.
Сгенерированный итерируемый объект имеет count элементов, а элемент с индексом n вычисляется путём вызова generator(n). Значения не кэшируются, поэтому каждый раз при итерации вычисляются заново.
Если generator опущено, по умолчанию используется функция идентичности для целых чисел (int x) => x, поэтому это возможно только в том случае, если параметр типа допускает целые значения. То есть, если E является супертипом int.
В качестве Iterable, Iterable.generate(n, generator)) эквивалентно const [0, ..., n - 1].map(generator).
Реализация
factory Iterable.generate(int count, [E generator(int index)?]) {
if (count <= 0) return EmptyIterable<E>();
return _GeneratorIterable<E>(count, generator);
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Iterable/Iterable.generate.html