Ale*_*ann 4 bitwise-operators infix-operator kotlin
在Kotlin REPL和Kotlin / JVM中:
-1 ushr 4
268435455
-1.ushr(4)
0
第一个是正确的,因为-1是0xFFFFFFFF,所以0x0FFFFFFF是268435455,但是第二个有什么不同呢?
use*_*612 7
这取决于操作员的优先级。在第一种情况下,操作解析为(-1) ushr 4,而在第二种情况下,操作解析为-(1 ushr 4)。
(-1) ushr 4
-(1 ushr 4)
发生这种情况是因为(引用文档):
Infix函数调用的优先级低于算术运算符,类型强制转换和rangeTo运算符。以下表达式是等效的: 1 shl 2 + 3 和 1 shl (2 + 3)
Infix函数调用的优先级低于算术运算符,类型强制转换和rangeTo运算符。以下表达式是等效的:
1 shl 2 + 3 和 1 shl (2 + 3)
1 shl 2 + 3
1 shl (2 + 3)
方法调用的优先级高于-。
-
归档时间:
7 年,1 月 前
查看次数:
49 次
最近记录: