我想要 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]