5
public static long checkedAdd(long a, long b) {
long result = a + b;
checkNoOverflow((a^b) < 0 | (a^result) >= 0);
return result;
}
Ich bin interessiert, warum Boolean logisch | wird hier verwendet. Warum nicht bedingte Kurzschlüsse verwenden ||?Seltsame Implementierung von Guava LongMath.checkedAdd
Wie würden Sie es geschrieben haben? –
checkNoOverflow ((a^b) <0 || (a^Ergebnis)> = 0); – ZhekaKozlov
Nicht ungewöhnlich in Code, der aus Leistungsgründen Verzweigung vermeiden möchte. – molbdnilo