Сочетание '. ()' Является необязательным при вызовах методов (как объяснил Wysawyg выше) и возможность использовать (почти) любые символы, которые вам нравятся для именования методов, позволяет писать в Scala методы, которые выглядят как перегрузка оператора. Вы даже можете изобрести своих собственных операторов.
Например, у меня есть программа, которая занимается компьютерной графикой 3D. У меня есть свой собственный класс Vector
для представления трехмерного вектора:
class Vector(val x: Double, val y: Double, val z: Double) {
def +(v: Vector) = new Vector(x + v.x, y + v.y, z + v.z)
// ...etc.
}
Я также определил метод **
(не показан выше) для вычисления перекрестного произведения из двух векторов. Очень удобно, что вы можете создавать свои собственные операторы, подобные этим в Scala, не многие другие языки программирования обладают такой гибкостью.