2013-10-23 3 views
5

MitIst Scala-Import rekursiv?

import mypack._ 

brauche ich noch

import mypack.box.writer 
import mypack.box.reader 

und

import mypack.box.parser.stringparser 

?

Und was ist das richtige Stichwort zu suchen/google? "Recursive" gibt mir überwältigende "Tail Recursion" -Ergebnisse.

+0

"Rekursive" scheint hier irrelevant. "Subsumieren", vielleicht oder denkbar "transitiv". In jedem Fall, wie Daniel antwortet, hat es keine Effekte der zweiten oder höheren Ebene. Eine andere Sache, die es nicht tut, ist, dem extern sichtbaren Inhalt eines Namensraums etwas hinzuzufügen (einschließlich, wenn der Import in einem Typ- oder Wertdefinitionsblock erscheint). –

Antwort

10

Nein, Scala-Import ist nicht rekursiv.

Pakete dienen dazu, den Namespace im aktuellen Bereich sauber zu halten. Der Import aller Unterpakete würde dem entgegenstehen.

Auf der anderen Seite sind die Einfuhren relativ, so können Sie dies tun:

import mypack._ 
import box.writer 
import box.reader 
import box.parser.stringparser 

Manche Menschen mögen diesen Stil, weil es etwas fehleranfällig ist. Ich mag das nicht, weil es keine klare Unterscheidung zwischen absoluten und relativen Importen gibt. Trotzdem hilft es manchmal.