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