我经常使用.par.map(...).seq
。但是,我总是想知道我的方法的实际输出类型:哪个Seq实现并确保它不会产生奇怪的行为,例如视图或流可能发生的事情。
所以
1).par.map(...).seq
的实际输出类型是什么?
我在shell中尝试过,它是用于列表和范围输入的Vector,以及用于数组输入的ArraySeq。但是通过查看源代码,我无法理解选择的方式和位置(特征层次结构太复杂而无法遵循)。
2)有没有办法控制它,比如使用canbuildfrom?
我试图直接在.map中使用显式的canbuildfrom,但这实际上打破了.par行为,似乎。
注意:我要求这些问题避免做一个安全的副本,例如使用明显有效的.toVector
。