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