Scala.Array 包含一个函数 toArray,作为从 ArrayOps 隐式导入的。
是否有任何使用案例可以使用 Array.toArray 或者它总是返回对象的副本?
ArrayOps
继承自GenTraversableOnce
的toArray
方法(在TraversableOnce
中提供了默认实现)。
对于Array
来说,这个方法是没有意义的,但是对于其他GenTraversableOnce
的子类,比如Map
、List
、Set
等等,这个方法是有用的。
类似地,Map
继承了一个无意义的toMap
方法,List
继承了一个toList
方法,Set
继承了一个toSet
方法,以此类推。
在特定情况下,toArray
方法提供的默认实现会被ArrayOps覆盖。
如果在Array
上调用toArray
方法,只有当目标类型的运行时类不同时,它才会返回一个新的Array
,否则它将只是将Array
强制转换为适当的类型并返回相同的实例。
因此,通常情况下,在Array
实例上调用toArray
方法是没有意义的,尽管不会显著增加开销。