2010-05-21 7 views

Respuesta

14

En general, cuando se ve throw new Error() en el código fuente de una clase de biblioteca, que representa un punto en que el compilador está interviniendo e implementar el método por el puente a una instalación de la plataforma (recuerda que esto podría ser Java o .NET) .

El Array SID explica cómo se trataban las matrices en Scala 2.7.x, y cómo han cambiado en 2.8. El compilador solía convertir mágicamente el objeto a BoxedArray si llamaba al map.

En 2,8, la integración de matrices en el marco de las colecciones Scala se maneja en gran medida con el uso de características Langauges normales - conversiones implícitas de Array[T] a WrappedArray[T] o ArraySeq[T], dependiendo del contexto, y los parámetros implícitos de tipo Manifest[T] para apoyar la creación de matrices de un tipo genérico T. Array indexing, length y update siguen apareciendo como throw new Error(). Array#map ya no existe; en su lugar, encontrará esto en WrappedArray y ArraySeq como método habitual.

ACTUALIZACIÓN

Si está interesado en conocer esta magia compilador se define, echar un vistazo a Scala 2,8 encarnación de Cleanup.scala.

4

Looks como si fuera solo un código falso, ya que los arrays de Scala son realmente Java.

+0

similar a "native"? En java, quiero decir, como ... * Oye, no te preocupes, ¿sé qué hacer debajo? * – OscarRyz

+0

Eso sería mi suposición, aunque no estoy seguro. – pdbartlett

Cuestiones relacionadas