在Scala文檔中,集合同時定義了.seq和.toSeq方法。他們之間有什麼區別,他們爲什麼都在那裏?我無法從閱讀Scala收集文檔中發現它。scala .seq與.toSeq
11
A
回答
20
假設我有一個平行的集合:在此集合像map
val myParList = List(1, 2, 3, 4).par
現在操作將並行運行。通常,這是偉大的,因爲它意味着的東西得到執行速度更快,但有時候你確實需要對內容進行某些方面影響操作,然後並行運行可能會導致問題:
scala> myParList.foreach(println)
1
4
3
2
.seq
讓你通過要求操作順序運行(不復制集合的內容)來解決這個問題:
scala> myParList.seq.foreach(println)
1
2
3
4
實際上它只是撤銷.par
。 .toSeq
不提供相同的保證,並且通常它僅在GenTraversableOnce
的子類中有用,這些子類尚不是Seq
s。
1
實驗在REPL顯示一個區別:
scala> val l = List(1,2,3)
l: List[Int] = List(1, 2, 3)
scala> l.seq
res2: scala.collection.immutable.LinearSeq[Int] = List(1, 2, 3)
scala> l.toSeq
res3: scala.collection.immutable.Seq[Int] = List(1, 2, 3)
+0
OP表示他們已經閱讀了API文檔,其中明確指出了返回類型的差異,所以我不確定這會有所幫助。 – 2014-10-10 18:40:56
相關問題
- 1. 斯卡拉:toSeq VS SEQ(東西:_ *)
- 2. toSeq來自於不同的行爲[SEQ]
- 3. Scala拼合一個Seq [Future [Seq []]]
- 4. Java在Spark中的Scala Seq?
- 5. JSON陣列和Scala SEQ
- 6. scala Seq sortWith or sortBy with NaNs
- 7. Scala:模式匹配Seq [Nothing]
- 8. immutable.js:Map與Seq
- 9. 玩!框架與scala - 窗體seq(文本)綁定
- 10. Scala的選項[SEQ [A]]存在
- 11. Scala可變參數函數和Seq
- 12. 反序列化Scala的對象zipAll SEQ
- 13. Scala將Seq轉換爲k,v的sbt.Project.Setting [_]
- 14. 爲什麼scala將Seq轉換爲List?
- 15. 過濾兩個未來[Seq]理解scala
- 16. Scala:將Seq傳遞給var-args函數
- 17. 如何隱藏Scala Seq到Java枚舉
- 18. 將Scala Seq從Java傳遞到Scala函數中
- 19. clojure cons vs conj與lazy-seq
- 20. seq(...)參數「length.out」與「length」
- 21. 插入SEQ
- 22. scala.Array是一個Seq?
- 23. A => Seq [B]
- 24. SEQ <obj>與在F#SEQ <float>
- 25. 火花:mappartition(平行)+迭代(SEQ)與同時(SEQ)+地圖(平行)
- 26. 在隔板之間SEQ /陣列的Scala過濾元件
- 27. Seq [T]和T *之間的Scala有差異嗎?
- 28. 如何對Scala中的Seq [Array [String]]進行過濾?
- 29. 可以比較使用==的Scala中的Seq對嗎?
- 30. 播放的Json寫入:Scala的SEQ到JSON對象
綜上所述,你能想到.toSeq'的'作爲縮寫'.toSequence'和'.seq'爲'.toSequential'。 – 2014-10-10 18:42:13