Конструктор 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.19.6/dart-core/Iterable/Iterable.generate.html