【发布时间】:2011-10-24 17:34:24
【问题描述】:
在 Java 中,
更新:这实际上是语言规范中的一个错误,'
【问题讨论】:
标签: scala
在 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))
你能提供一个颠倒优先级的例子吗?
【讨论】:
<开头的方法在使用时优先级高于以=开头的方法中缀表示法(在 Scala 2.8.1 上)。