getRange 方法
override
创建一个迭代器,遍历一系列元素。
返回的迭代器遍历此列表中大于或等于 start
且小于 end
的元素。
提供的范围,start
和 end
,必须在调用时有效。如果 0 ≤ start
≤ end
≤ length,则从 start
到 end
的范围有效。空范围(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);
}