Scala.Array包含一个toArray函数,作为ArrayOps的隐式导入。
是否存在Array.toArray的用例,或者它是否总是返回该对象的副本?
答案 0 :(得分:7)
ArrayOps
从toArray
继承GenTraversableOnce
(TraversableOnce
中提供了默认实现)
如果Array
没有意义,但该方法适用于GenTraversableOnce
的所有其他子类,例如Map
,List
,Set
和许多其他人。
类似地,Map
继承了无意义的toMap
方法,List
一个toList
,Set
一个toSet
等等。
在toArray
的特定情况下,TraversableOnce
特征中提供的默认实施被ArrayOps覆盖。
仅当目标类型的运行时类不同时,在toArray
上调用Array
才会返回一个新的,否则它只会将Array
强制转换为适当的类型并返回相同的实例。
因此,一般来说,在toArray
的实例上调用Array
是没用的,虽然价格不贵。