在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