Si tengo un paquete com.example
, puedo crear una clase en la que el paquete de la siguiente manera:¿Hay alguna diferencia sustancial entre declarar una clase normalmente versus en un objeto de paquete?
package com.example {
class MyClass
}
o como esto:
package com {
package object example {
class MyClass
}
}
En ambos casos, la clase resultante es (por lo que otro código de Scala se refiere, al menos) com.example.MyClass
.
Sin duda hay diferencias incidentales. En el primer caso, la clase compilada resultante es com/example/MyClass.class
, mientras que en el segundo es com/example/package$MyClass.class
, pero ¿hay alguna diferencia sustancial?
Entonces, para completar, la respuesta a la pregunta "¿hay alguna diferencia sustancial ..." es "no"? ¿Solo diferencias accidentales que desaparecerán en 2.10? ¡Gracias! –
Correcto. (Puede haber más errores al acecho, por supuesto.) El paquete de objetos es una característica que puede evolucionar aún más: consulte la sección "Lo que está por venir" aquí: http://www.scala-lang.org/docu/files/packageobjects/ packageobjects.html – retronym