result |= Try()
ist die Abkürzung für result = result | Try();
. Der Operator ||
scheint Sie zu verstehen, aber der Operator |
ist ganz anders. Der Name ist bitweise oder (im Gegensatz zu logisch oder). Es hat den gleichen Effekt, als ob es a=a||b
auf jedem Bit der Operanden ausgeführt hätte, und hat nicht das Quick-Bailout-Ding, das logisch und / oder hat. (Es ist auch verrückt schnell; so schnell oder schneller als die Addition). Die anderen bitweisen Operationen sind &
(bitweise und: a=a&&b
für jedes Bit) und ^
(bitweise xor: a=(a!=b)
für jedes Bit).