2012-03-20 11 views
8

En mis publicaciones recientes sobre el uso u omisión de una palabra clave "nueva" en Scala ("new" keyword in Scala) me dijeron que la omisión proviene del hecho de que ciertas clases tienen objetos complementarios definidos con el método apply en ellos. Mi pregunta es: ¿podemos decir o existe alguna regla general para distinguir qué clases/objetos tienen un objeto complementario y aplicar el método?Scala: objetos complementarios y palabra clave "nueva"

Gracias de antemano y lo siento es una pregunta estúpida, pero viene de un fondo de Java es un poco confuso.

+1

Puede buscar en los scaladocs. O si usa un IDE, el código completado debe mostrarlo. – drexin

+0

Estoy usando eclipse, ¿cómo debería decirme si estoy usando un compañero o no? – Bober02

+0

Su pregunta no era si debería usar un acompañante, sino cómo distinguir qué clases tienen un compañero con la aplicación definida y el IDE muestra una C para la clase o una O para el objeto en la lista de finalización del código. – drexin

Respuesta

11

En el Scala API documentation, verá un pequeño icono enter image description here en la lista en el lado izquierdo. Si hace clic en eso, irá a la documentación del objeto complementario de la clase o rasgo que se menciona.

La mayoría de las clases de colección y muchas otras clases de la biblioteca estándar tienen objetos complementarios con los métodos apply.

Para las clases de casos, el compilador Scala crea automáticamente un objeto complementario con un método apply (y otros métodos).

4

En el scala API documentation, se puede acceder al objeto compañero haciendo clic en el icono de Object icon como explained by Jesper, pero también se puede cambiar entre una clase y su objeto compañero haciendo clic en el símbolo de la clase/objeto en la parte superior del panel principal :

enter image description here

Cuestiones relacionadas