![](/img/trans.png)
[英]What's the difference between addAll() vs followedBy() in Dart lists?
[英]What's the difference between List take() vs. getRange() in Dart
我想要一些List
的前n 個元素。 據我所知,我有兩個選擇: take(n)
和getRange(0, n)
。
最明顯的區別是take()
只能在開頭使用元素,您可以將它與list.skip(3).take(5)
類的skip()
結合使用以獲得類似的行為。
list.take()
是惰性求值的,它適用於函數式編程,如果元素稍后沒有真正迭代,它可能會更有效。
list.take()
也可以容忍當列表中的元素沒有要求的那么list.take()
。 take()
返回盡可能多的可用, getRange()
拋出。 take()
可用於所有可迭代對象(也包括流), getRange()
僅在默認情況下可用於列表。
take()
和getRange()
之間存在差異
拿()
此方法返回從索引 0 開始直到從給定列表提供的計數的可迭代對象。
您可以使用take(count)
獲取List
的第一個計數項
var sportsList = ['cricket', 'tennis', 'football'];
print(sportsList.take(2)); // (cricket, tennis)
獲取范圍()
此方法以與給定列表中相同的順序返回指定范圍[start]
到[end]
中的元素。 請注意,開始元素是包含的,但結束元素是不包含的。
您可以通過使用getRange()
方法在List
指定范圍來獲取一組項目。
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]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.