Импортирует методы и переменные объекта. Поэтому, если вы хотите вызвать a.foo(), вы можете просто вызвать foo().
Ответ 2
Это означает, что все методы и переменные объекта a типа a теперь доступны в этом блоке (области) без явного упоминания a. Поэтому, если a имеет метод bar(), вы можете теперь сказать:
bar()
вместо
a.bar()
но только в пределах области, где import определен.
Ответ 3
Объясните это тем, с чем вам следует ознакомиться:
println("Hello world")
Вопрос: почему это работает? Нет объекта с именем println с методом apply, что является обычным объяснением кода, который выглядит так. Ну, как это бывает, приведенный выше код действительно делает это:
Predef.println("Hello world")
Другими словами, println является методом объекта scala.Predef. Итак, как вы можете использовать его, как указано выше? Ну, вот так:
import scala.Predef._
println("Hello world")
Импортирование содержимого стабильной ссылки (т.е. не var или def) сделает ее методы доступными без необходимости префикса их с помощью reference..
Он также делает доступными любые имплициты внутри него, а именно, как становятся доступными неявные преобразования внутри scala.Predef - Scala импортирует содержимое java.lang, scala и scala.Predef ( в этом порядке, поэтому последние перекрывают более ранние).