2009-03-26 8 views
37

Ich verwende IntelliJ IDEA mit dem Scala-Plugin. Wenn ich HashMap in Code verweisen, und verwenden Sie dann Alt-Geben Sie den Import hinzuzufügen, wird das Paket importiert, wie:Was ist das _root_ Paket in Scala?

_root_.scala.collection.immutable.HashMap 

Was ist die Wurzel Teil davon? Es scheint mit und ohne es zu arbeiten.

Antwort

40

Es muss Scala Importe relativ sein - _root_ gibt Ihnen eine Möglichkeit, einen absoluten Paketnamen anzugeben. Siehe die Scala Wiki

5

Sie würden es nur benötigen, wenn Sie in Ihrem aktuellen Paket ein verschachteltes Paket scala.collection.immutable mit HashMap hatten. Dies würde von einem relativen Import ohne den _root_ Teil bevorzugt.

Bearbeiten: Das war nicht ganz richtig, die Probleme beginnen bereits, wenn Sie ein Scala-Paket entweder als Vorfahre oder im aktuellen Paket verschachtelt haben.

5

Die Spezifikation Scala Sprache hat dies zu sagen _root_ in Abschnitt 9.4 Package Referenzen

Die speziellen vordefinierten Namen _root_ zum äußersten Wurzelpaket beziehen, die alle Pakete oberste Ebene enthalten.

Siehe folgende PDF für die volle Sprachreferenz: http://www.scala-lang.org/docu/files/ScalaReference.pdf