Creates an Iterable
that generates its elements dynamically.
An Iterator
created by iterator will count from
zero to count - 1
, and call generator
with each index in turn to create the next value.
If generator
is omitted, it defaults to an identity function
on integers (int x) => x
, so it should only be omitted if the type
parameter allows integer values.
As an Iterable
, new Iterable.generate(n, generator))
is equivalent to
const [0, ..., n - 1].map(generator)
.
Source
factory Iterable.generate(int count, [E generator(int index)]) {
if (count <= 0) return new EmptyIterable<E>();
return new _GeneratorIterable<E>(count, generator);
}