为什么不toList和朋友弃用?

Ami*_*ico 9 scala

在此之前的Scala序列类型的2.10版本有类似的方法toListtoArray用于从一种类型转换为另一种.从Scala 2.10开始,我们有to[_]例如to[List]包含toList和朋友的东西,并且还使我们能够转换为新类型Vector,甚至可能转换为我们自己的集合类型.当然,它使您能够转换为仅作为类型参数知道的类型,例如to[A]- 很好!

但为什么旧的方法不被弃用?它们更快吗?是否有toList工作但to[List]不是的情况?我们是否应该优先选择其中一个工作?

Sam*_*ieu 7

toListTraversableOnceas中实现to[List],因此不会有任何明显的性能差异.

但是,toArray(非常轻微)to[Array]比前者分配正确大小的数组更有效,而后者首先创建一个数组,然后设置大小提示(就像它对每个目标集合类型一样).除非您在紧密循环中将数据转换为数组,否则这不应对实际应用程序产生影响.

旧的方法很容易被弃用,我敢打赌他们将来会这样做,但人们已经习惯了他们,立即弃用他们可能会让一些人生气.

  • `toXXX`很容易被覆盖,就像[`toList`]的情况一样(https://github.com/scala/scala/blob/v2.10.0/src/library/scala/collection/immutable/List. scala#L196),不仅仅适用于`toArray`. (3认同)