在Java中,
更新:这实际上是语言规范中的一个错误,在 Scala 中“
在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))
您能提供一个优先级颠倒的例子吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)