Фабричный конструктор Iterable.generate
Iterable.generate(Создает Iterable, который генерирует свои элементы динамически.
Сгенерированный итерируемый объект содержит count элементов, а элемент с индексом n вычисляется путем вызова generator(n). Значения не кэшируются, поэтому каждый раз при итерации значения вычисляются заново.
Если generator опущено, оно по умолчанию является тождественной функцией на целых числах (int x) => x, поэтому его можно опустить только в том случае, если параметр типа допускает целочисленные значения. То есть, если E является одним из int, num, Object или dynamic.
В качестве Iterable, new Iterable.generate(n, generator)) эквивалентно const [0, ..., n - 1].map(generator).
Исходный код
factory Iterable.generate(int count, [E generator(int index)]) {
if (count <= 0) return new EmptyIterable<E>();
return new _GeneratorIterable<E>(count, generator);
}
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/Iterable/Iterable.generate.html