在布尔评估中严重依赖短路是否有良好的编码风格?
我知道谁喜欢这样做.
例如,如果业务逻辑是“如果爱丽丝不饿,或者如果爱丽丝和鲍勃都饿了”,而不是写
// if Alice is not hungry or both alice and bob are hungry if (!A || A && B)`
他会写
// if Alice is not hungry OR both alice and bob are hungry if (!A || B)
认为||是短路的,所以当且仅当第一个为假时(这意味着A = true),对右操作数进行评估.
(这个令人讨厌的事情是,乍一看,你会认为这是一个错误,但后来觉得你会看起来很愚蠢,如果你把它改为更明显的!)