невероятное неявное преобразование массива в scala

Согласно Scaladoc, в классе Array нет метода с именем map , но есть неявная функция implicit def intArrayOps (xs : Array [Int]): ArrayOps [Int] , определенный в scala.Predef . Таким образом, вы можете применить карту к Array (1,2,3,4) , если хотите. Но меня смущает то, что результат map имеет тип Array [Int] , а не ArrayOps [Int] . Вот мой тест:

scala> val array = Array(1,2,3,4)
array: Array[Int] = Array(1, 2, 3, 4)

scala> array.map(x => x)
res18: Array[Int] = Array(1, 2, 3, 4)

scala> res18.isInstanceOf[Array[Int]]
res19: Boolean = true

scala> res18.isInstanceOf[scala.collection.mutable.ArrayOps[Int]]
warning: there wre 1 unchecked warnings; re-run with -unchecked for details
res20: Boolean = false
7
задан Dan Burton 27 November 2011 в 15:54
поделиться