Scala 2.7 попытался добавить функциональность в массивы Java []
и столкнулся с проблемными случаями. Scala 2.8 объявил, что Array[T]
равен T[]
, но он предоставляет оболочки и эквиваленты.
Попробуйте следующее в 2.8 (правка / примечание: начиная с RC3, GenericArray
равно ArraySeq
- спасибо retronym за указание на это):
import scala.collection.mutable.{GenericArray=>GArray, WrappedArray=>WArray}
scala> GArray(0,1,2) == GArray(0,1,2)
res0: Boolean = true
scala> (Array(0,1,2):WArray[Int]) == (Array(0,1,2):WArray[Int])
res1: Boolean = true
GenericArray
действует так же, как Array
, за исключением того, что в него добавлены все вкусности коллекций Scala. WrappedArray
упаковывает массив Java []
; выше, я привел к нему простой массив (проще, чем вызов функции неявного преобразования), а затем сравнил упакованные массивы. Эти обертки, хотя и поддерживаются массивом []
, также дают вам все полезные свойства коллекции.