2012-05-10 13 views

Respuesta

14

Importa los métodos y variables del objeto a. Por lo tanto, si desea llamar al a.foo(), simplemente puede llamar al foo().

9

Significa que todos los métodos y variables de a objeto del tipo A ahora están disponibles en este bloque (alcance) sin mencionar explícitamente a. Así que si A tiene un método bar() ahora se puede decir:

bar() 

en lugar de

a.bar() 

pero sólo dentro del ámbito donde se define import.

6

Vamos a explicar esto con algo que usted debe estar familiarizado con:

println("Hello world") 

La pregunta es: ¿por qué funciona eso? No hay ningún objeto llamado println con un método apply, que es la explicación habitual para el código que se parece a eso. Bueno, como es el caso, el código anterior es realmente hacer esto:

Predef.println("Hello world") 

En otras palabras, println es un método en el objeto scala.Predef. Entonces, ¿cómo puedes usarlo como arriba? Pues bien, como esto:

Importación de los contenidos de una referencia estable (es decir, no un var o una def) hará que sus métodos disponibles sin tener que prefijar con reference..

También hace ningún implícitos definidos dentro de él disponible, que es como se ponen a disposición las conversiones implícitas definidas dentro scala.Predef así - Scala importa el contenido de java.lang, scala y scala.Predef (en ese orden, por lo que el último override las los anteriores).

+0

+1 porque mencionó la _ referencia estable_ –

Cuestiones relacionadas