2012-05-10 4 views

ответ

14

Импортирует методы и переменные объекта. Поэтому, если вы хотите позвонить a.foo(), вы можете просто позвонить foo().

9

Это означает, что все методы и переменные объекта a объекта A теперь доступны в этом блоке (области) без явного упоминания a. Так что, если A имеет метод bar() теперь вы можете сказать:

bar() 

вместо

a.bar() 

, но только в пределах, где import определена.

6

Поясним это с чем-то вы должны быть знакомы с:

println("Hello world") 

Возникает вопрос: почему это работает? Нет объекта с именем println с методом apply, который является обычным объяснением для кода, который выглядит так. Ну, как это происходит, приведенный выше код действительно делает это:

Predef.println("Hello world") 

Другими словами, println является метод на объекте scala.Predef. Итак, как вы можете использовать его, как указано выше? Ну, как это:

Импорт содержимого стабильного опорного (т.е. не var или def) сделает его методы доступны без префикса их reference..

Это также делает любые implicits, определенные в нем имеется, что, как неявные преобразования, определенные внутри scala.Predef сделаны доступными, а также - Scala импортирует содержимое java.lang, scala и scala.Predef (в таком порядке, так что последний из них переопределение более ранние).

+0

+1 потому что вы упомянули _stable reference_ –

Смежные вопросы