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

Что именно этот импорт точно означает в Scala?

В Scala я обнаружил следующее:

class MyClass {
  ...
  val a = new A; import a._

}

Что означает val a = new A; import a._?

4b9b3361

Ответ 1

Импортирует методы и переменные объекта. Поэтому, если вы хотите вызвать 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 ( в этом порядке, поэтому последние перекрывают более ранние).