What is the _root_ package in Scala?

前端 未结 3 710
面向向阳花
面向向阳花 2020-12-10 00:41

I\'m using IntelliJ IDEA with the Scala plugin. If I reference HashMap in code, and then use Alt-Enter to add the import, the package gets imported as:

_root         


        
相关标签:
3条回答
  • 2020-12-10 01:03

    It has to do scala imports being relative - _root_ gives you a way to specify an absolute package name. See the Scala Wiki

    0 讨论(0)
  • 2020-12-10 01:07

    The Scala language specification has this to say about _root_ in section 9.4 Package References

    The special predefined name _root_ refers to the outermost root package which contains all top-level packages.

    See the following PDF for the full language reference: http://www.scala-lang.org/docu/files/ScalaReference.pdf

    0 讨论(0)
  • 2020-12-10 01:17

    You would only need it if inside your current package you had a nested package scala.collection.immutable containing HashMap. This would be preferred by a relative import without the _root_ part.

    Edit: That was not quite right, the problems start already if you have a scala package either as an ancestor or nested in the current package.

    0 讨论(0)
提交回复
热议问题