Scala中的_root_包是什么?

时间:2009-03-26 18:46:18

标签: scala intellij-idea

我正在使用带有Scala插件的IntelliJ IDEA。如果我在代码中引用HashMap,然后使用Alt-Enter添加导入,则包将导入为:

_root_.scala.collection.immutable.HashMap

root 的部分内容是什么?它似乎可以使用和不使用它。

3 个答案:

答案 0 :(得分:42)

scala导入必须是相对的 - _root_为您提供了一种指定绝对包名称的方法。请参阅Scala Wiki

答案 1 :(得分:7)

Scala语言规范对第9.4节程序包参考

中的_root_进行了说明。
  

特殊的预定义名称_root_指的是最外层的根包   包含所有顶级包。

有关完整的语言参考,请参阅以下PDF:http://www.scala-lang.org/docu/files/ScalaReference.pdf

答案 2 :(得分:5)

如果在当前包中有一个包含HashMap的嵌套包scala.collection.immutable,则只需要它。没有_root_部分的相对导入会优先考虑这种情况。

编辑:这不是很正确,如果您将scala软件包作为祖先或嵌套在当前软件包中,问题就已经开始了。

相关问题