getRange 方法

Iterable<E> getRange(
  1. int start,
  2. int end
)
override

创建一个迭代器,遍历一系列元素。

返回的迭代器将遍历此列表中位置上大于或等于 start 且小于 end 的元素。

提供的范围 startend 在调用时必须有效。从 startend 的范围有效,如果 0 ≤ startendlength。空范围(end == start)也是有效的。

返回的 Iterable 的行为类似于 skip(start).take(end - start)。也就是说,当此列表大小改变时,它不会中断,只是如果它提前到达了列表的末尾(end 或甚至 start 成为大于 length 的值),则提前结束。

final colors = <String>['red', 'green', 'blue', 'orange', 'pink'];
final firstRange = colors.getRange(0, 3);
print(firstRange.join(', ')); // red, green, blue

final secondRange = colors.getRange(2, 5);
print(secondRange.join(', ')); // blue, orange, pink

实现方式

Iterable<E> getRange(int start, int end) {
  RangeError.checkValidRange(start, end, this.length);
  return SubListIterable<E>(this, start, end);
}