Следующий код не компилируется:
implicit class TripleEq(val x: Int) {
def === (y: Int) = x == y
def !== (y: Int) = x != y
}
val a = 0
val b = 1
if (a == a && b === b) {
println("Equal")
}
if (a != b && a !== b) {
println("Not equal")
}
Ошибка:
несоответствие типов; Найдено: Int требуется: Boolean
Ошибка исчезает, когда я заключаю a !== b
в скобки.
Я думал, что приоритет оператора определяется его первой буквой (см. Тур по Scala) и, следовательно, приоритет !==
должен совпадать с ===
, !=
или ==
.
Почему в приведенном выше коде требуются скобки