Это не обратное в Scala.Попробуйте это:
val what = 5 == 8 < 4
Я получаю предупреждение во время компиляции: comparing values of types Boolean and Int using `==' will always yield false
;очевидно, что компилятор перевел это на 5 == (8 < 4)
, как в Java.
Вы также можете попробовать это:
class Foo {
def ===(o: Foo) = { println("==="); this }
def <<<(o: Foo) = { println("<<<"); this }
def >>>(o: Foo) = { println(">>>"); this }
}
def foo = new Foo
Затем вызов foo === foo <<< foo >>> foo
выводит это на печать:
<<<
>>>
===
Что означает, что он был проанализирован как (foo === ((foo <<< foo) >>> foo))
Можете ли вы привести пример, когда приоритет меняется на противоположный?