Джим Балтер упоминает в свой ответ (поднимите его) Scala 2.8 объект пакета .
Любое определение, которое вы можете поместить в класс, вы также можете поместить на верхний уровень пакета.Если у вас есть какой-то вспомогательный метод, который вы хотели бы использовать в рамках всего пакета, продолжайте и поместите его прямо на верхний уровень пакета.
Для этого поместите определения в объект пакета.Каждому пакету разрешено иметь один объект пакета
На самом деле Scala имеет свой собственный объект пакета scala .
См. " Где разместить объекты пакета ",
Таким образом, объект пакета может решить проблему явного импорта для данного пакета, но не для любого пакета.
Его текущие ограничения включают :
- Во-первых, вы не можете определять или наследовать перегруженные методы в объектах пакета.
- Во-вторых, вы не можете определить или наследовать член в объекте пакета, который также является именем класса или объекта верхнего уровня в том же пакете.
Мы ожидаем, что в будущем выпуске Scala эти ограничения будут отменены.
Оригинальный ответ:
На стороне Scala вопрос типа " должен ли Scala импортировать scala.collection.JavaConversions._ по умолчанию? "показывает, что вы не можете просто добавить импорт по умолчанию в качестве пользователя Scala.
Это должно поддерживаться языком.
Кстати, вывод был:
ИзМнение эксперта по Scala: давайте сделаем все просто и ограничим имплициты, импортируемые по умолчанию, до абсолютного минимума.
Хейко Зеебергер
Рафаэль комментирует, хотя:
Полагаю, вы могли бы написать свой собственный плагин компилятора для добавления некоторых пакетов?
И, конечно же, в этой статье Scala описано, какдля расширения компилятора Scala .
Но основные поддерживаемые дополнения:
- Вы можете добавить фазу в компилятор, добавив, таким образом, дополнительные проверки или дополнительные переписывания дерева, которые применяютсяпосле проверки типа.
- Вы можетесообщить компилятору информацию о проверке типов об аннотации, предназначенной для применения к типам.
Так что даже при переписывании дерева (включая дополнительный импорт) я не уверен, что переписывание произойдетбудет сделано вовремя, чтобы типы и функции (на которые ссылается запрашиваемый неявный импорт) могли быть правильно проанализированы.
Но, возможно, Scala Compiler Corner имеет больше идей на этот счет.