Основной вопрос:
Почему может я писать в Scala просто:
println(10)
Почему не делают я должен записать:
Console println(10)
Последующий вопрос:
Как я могу представить новый метод "нечто", которое везде видимо и применимо как "println"?
Вам не нужно писать консоль
перед оператором, потому что объект Scala Predef
, который автоматически импортируется для любого исходного файла Scala, содержит такие определения:
def println() = Console.println()
def println(x: Any) = Console.println(x)
Вы не можете легко создать «глобальный» метод, который будет автоматически виден везде. Что вы можете сделать, так это поместить такие методы в объект пакета, например:
package something
package object mypackage {
def foo(name: String): Unit = println("Hello " + name")
}
Но чтобы использовать его, вам нужно будет импортировать пакет:
import something.mypackage._
object MyProgram {
def main(args: Array[String]): Unit = {
foo("World")
}
}
(Примечание: вместо объекта пакета вы также можете поместите его в обычный объект, класс или признак, если вы импортируете содержимое объекта, класса или признака - но объекты пакета более или менее предназначены для этой цели).