我想要 some 的前n 个元素List
。据我所知,我有两个选择:take(n)
和getRange(0, n)
.
- 他们之间有什么区别?
- 我什么时候会使用一个而不是另一个(假设我总是想要前n 个元素)?
我想要 some 的前n 个元素List
。据我所知,我有两个选择:take(n)
和getRange(0, n)
.
最明显的区别是take()
只能在开始时使用元素,但您可以将其与skip()
like组合list.skip(3).take(5)
以获得类似的行为。
list.take()
是惰性评估的,它适用于函数式编程,并且如果元素以后没有实际迭代可能会更有效。
list.take()
当列表中的元素没有请求的那么多时,也可以容忍。take()
返回尽可能多的可用,getRange()
抛出。
take()
适用于所有可迭代对象(也适用于流),getRange()
默认情况下仅在列表中可用。
take()
和之间有区别getRange()
拿()
此方法返回从索引 0 到给定列表提供的计数的可迭代对象。
您可以获得使用的第一个计数List
项目take(count)
var sportsList = ['cricket', 'tennis', 'football'];
print(sportsList.take(2)); // (cricket, tennis)
获取范围()
此方法以与给定列表中相同的顺序返回指定范围内的元素[start]
。[end]
请注意,开始元素是包容性的,而结束元素是排斥性的。
List
您可以通过在usinggetRange()
方法中指定范围来获取一组项目。
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]