generate method

Iterable<num> generate()

Generate the values for the range.

Handy with for loops.

Example:

final list = <int>[];
final range = Range(stop: 10);
for (var i in range.generate()) {
  list.add(i);
}
print(list);

Result: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Implementation

Iterable<num> generate() sync* {
  if (start <= stop) {
    final lastValue = stopExclusive ? stop : stop + step;
    for (num i = start; i < lastValue; i += step) {
      yield i;
    }
  } else {
    final lastValue = stopExclusive ? stop : stop - step;
    for (num i = start; i > lastValue; i -= step) {
      yield i;
    }
  }
}