【发布时间】:2019-05-30 19:28:52
【问题描述】:
我今天早些时候在写一些代码,忘记了我写的是 Java 而不是 Swift 并且不小心输入了&+。令人惊讶的是,我没有收到任何错误,并且代码编译并运行良好。
我玩了一下,发现&+、&-、|+、|-、^+和^-都编译运行没有错误。看起来它们在作用于数字时都像第一个按位运算符:
1 &+ 2 == 1 & 2
3 |+ 4 == 3 | 4
7 ^+ 9 == 7 ^ 9
另一方面,位运算符和数学运算符的任何其他组合,如+&、&/ 和^*,似乎都会产生编译时错误。
为什么&+、&-、|+、|-、^+ 和 ^- 编译和运行不会出错?它们有什么我看不到的目的,还是只是一些编译异常?
【问题讨论】:
-
您只是格式错误。
1 &+ 2实际上是1 & +2。您可以在任何号码前加上+或-。