mic*_*ice 19 if-statement scala
因为正常的运算符如+,::, - >等都是可以重载的方法和东西我想知道是否|| 和&&也是方法.如果这是布尔对象的方法,理论上这可以工作.但如果是的话,为什么会这样呢
if (foo == bar && buz == fol)
Run Code Online (Sandbox Code Playgroud)
可能?如果编译器从右向左读取,则会调用&& on bar而不是(foo == bar)
Dan*_*ral 31
6.12.3中缀操作中缀操作符可以是任意标识符.中缀运算符的优先级和关联性定义如下:
中缀运算符的优先级由运算符的第一个字符决定.下面按优先级递增的顺序列出字符,同一行上的字符具有相同的优先级.
也就是说,以字母开头的运算符具有最低优先级,其后是以"|"开头的运算符等.
这条规则有一个例外,它涉及赋值运算符(第6.124节).分配运算符的优先级与简单赋值(=)的优先级相同.也就是说,它低于任何其他运算符的优先级.
下面是对关联性的解释,以及它如何在表达式中与多个运算符组合.在斯卡拉参考,使良好的阅读.
Bri*_*Hsu 23
所以(foo == bar && buz == fol)会变成如下:
val tmp1: Boolean = (foo == bar)
val tmp2: Boolean = (buz == fol)
tmp1 && tmp2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37973 次 |
| 最近记录: |