Сначала объявляю класс:
class Op(var x : Int) {
def +++(op: Op) = {
println(this.x + " +++ " + op.x)
this.x += op.x
this
}
def ***(op: Op) = {
println(this.x + " *** " + op.x)
this.x *= op.x
this
}
}
Теперь я выполняю выражение в REPL:
op1 +++ op2 +++ op3 *** op4
и выводит

Но почему метод *** не идет первым? Не является ли приоритет *** выше, чем +++? А как насчет Java и C? Это то же самое, что и в Scala?