Является ли импорт scala рекурсивным?
С
import mypack._
мне все еще нужно
import mypack.box.writer
import mypack.box.reader
а также
import mypack.box.parser.stringparser
?
И какое правильное ключевое слово для поиска / Google? "Рекурсивный" дает мне ошеломляющие результаты "хвостовой рекурсии".
1 ответ
Решение
Нет, импорт в Scala не рекурсивный.
Пакеты предназначены для поддержания чистоты пространства имен в текущей области. Импорт всех подпакетов по умолчанию пошел бы против этого.
С другой стороны, импорт относительный, поэтому вы можете сделать это:
import mypack._
import box.writer
import box.reader
import box.parser.stringparser
Некоторым людям не нравится этот стиль, так как он несколько подвержен ошибкам. Мне это не нравится, потому что нет четкого различия между абсолютным и относительным импортом. Тем не менее, иногда это помогает.