我想要一些List
的第一个 n 元素。据我所知,我有两个选择:take(n)
和getRange(0, n)
。
答案 0 :(得分:3)
最明显的区别是take()
只能在开头使用元素,您可以将其与skip()
list.skip(3).take(5)
结合使用,以获得类似的行为。
list.take()
是懒惰的评估,它与功能样式编程很好地协作,如果元素实际上没有被迭代,可能会更有效率。
如果列表中的元素数量不足,则list.take()
也可以容忍。 take()
会返回尽可能多的getRange()
次投放。
take()
可用于所有迭代(也称为流),getRange()
仅在列表中默认可用。
答案 1 :(得分:2)
take()
和 getRange()
之间存在差异
take()
此方法返回从索引 0 开始直到给定列表提供的计数的可迭代对象。
您可以使用 List
take(count)
的第一个计数项
var sportsList = ['cricket', 'tennis', 'football'];
print(sportsList.take(2)); // (cricket, tennis)
getRange()
此方法以与给定列表中相同的顺序返回指定范围 [start]
到 [end]
中的元素。请注意,开始元素是包含的,而结束元素是不包含的。
您可以通过使用 List
方法在 getRange()
中指定范围来获取一组项目。
var myList = [1, 2, 3, 4, 5];
print(myList.getRange(1,4)); // (2, 3, 4)
and also use
var myList = [0, 'one', 'two', 'three', 'four', 'five'];
myList.getRange(1, 3).toList(); // [one, two]