Por que o operador bit a bit e em curto-circuito?
Todos sabemos que o @ lógi&&
curto-circuito do operador se o operando esquerdo forfalse
, porque sabemos que se um operando forfalse
, o resultado também éfalse
.
Por que não o bit a bit&
operador também curto-circuito? Se o operando esquerdo for0
, então sabemos que o resultado também é0
. Cada idioma em que testei isso (C, Javascript, C #) avalia os dois operandos em vez de parar após o primeir
Existe alguma razão pela qual seria uma má idéia deixar o&
curto-circuito do operador? Caso contrário, por que a maioria dos idiomas não produz um curto-circuito? Parece uma otimização óbvia.