2012-05-10 1 views

risposta

14

Importa i metodi e le variabili di un oggetto. Quindi se vuoi chiamare lo a.foo(), puoi semplicemente chiamare foo().

9

Significa che tutti i metodi e le variabili dell'oggetto a di tipo A sono ora disponibili in questo blocco (ambito) senza menzionare esplicitamente a. Quindi, se A ha un metodo bar() si può dire ora:

bar() 

invece di

a.bar() 

ma solo nell'ambito di applicazione in cui è definito import.

6

Spieghiamo questo con qualcosa che si dovrebbe avere familiarità con:

println("Hello world") 

La domanda è: perché funziona? Non esiste un oggetto chiamato println con un metodo apply, che è la solita spiegazione per il codice che sembra così. Beh, come accade, il codice di cui sopra è davvero facendo questo:

Predef.println("Hello world") 

In altre parole, println è un metodo sull'oggetto scala.Predef. Quindi, come puoi usarlo come sopra? Ebbene, in questo modo:

importazione il contenuto di un riferimento stabile (cioè non un var o un def) renderà suoi metodi disponibili senza dover mettere come prefisso con reference..

rende anche eventuali impliciti definiti interno disponibile, che è come le conversioni implicite definite all'interno scala.Predef sono resi disponibili pure - Scala importa i contenuti di java.lang, scala e scala.Predef (in questo ordine, per cui valgono quest'ultimo sostituzione i precedenti).

+0

+1 perché hai citato il riferimento_table –