我试图将我的代码从 java转换为swift,但是当使用Int类型执行shift右运算符时,得到2个diffrence结果. // java的 int d = 25;int x = d 1 + 1;System.out.println(x); //output: 6 // swift(4) let d = 25 let x = d 1 + 1 pri
// java的
int d = 25; int x = d >> 1 + 1; System.out.println(x); //output: 6
// swift(4)
let d = 25 let x = d >> 1 + 1 print(x) //output: 13
什么是快速代码的解决方案?
Java正在计算d >> (1+1)
这是6.
斯威夫特在计算
(d >> 1) + 1
这是13.
您可以使用括号指定要执行的计算.
这是因为操作符优先:
>在Swift中 –
https://developer.apple.com/documentation/swift/operator_declarations – <<来之前.
>在Java – https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html – 之前<<