5
public static long checkedAdd(long a, long b) {
long result = a + b;
checkNoOverflow((a^b) < 0 | (a^result) >= 0);
return result;
}
我感兴趣为什么布尔logical |在这里使用。为什么不使用条件短路||?奇怪的实施番石榴LongMath.checkedAdd
如何将你写的吗? –
checkNoOverflow((a^b)<0 ||(a^result)> = 0); – ZhekaKozlov
在那些想要避免出于性能原因而分支的代码中并不罕见。 – molbdnilo