Подтвердить что ты не робот

Что такое пакет _root_ в Scala?

Я использую IntelliJ IDEA с плагином Scala. Если я ссылаюсь на HashMap в коде, а затем используйте Alt-Enter для добавления импорта, пакет импортируется как:

_root_.scala.collection.immutable.HashMap

Какая корневая часть этого? Кажется, что он работает и без него.

4b9b3361

Ответ 1

Он должен сделать scala импорт относительным - _root_ дает вам способ указать абсолютное имя пакета. См. Scala Wiki

Ответ 2

Вам понадобится только это, если внутри вашего текущего пакета у вас есть вложенный пакет scala.collection.immutable, содержащий HashMap. Это будет предпочтительным относительный импорт без части _root_.

Изменить: Это было не совсем правильно, проблемы начинаются уже, если у вас есть пакет scala либо как предок, либо вложенный в текущий пакет.

Ответ 3

Спецификация языка Scala имеет это, чтобы сказать о _root _ в разделе 9.4 Ссылки на

Специальное предопределенное имя _root _ относится к самому внешнему корневому пакету, который содержит все пакеты верхнего уровня.

См. следующий PDF файл для полной ссылки на язык: http://www. scala-lang.org/docu/files/ScalaReference.pdf