依靠Java的短路评估(编码风格)

前端之家收集整理的这篇文章主要介绍了依靠Java的短路评估(编码风格)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在布尔评估中严重依赖短路是否有良好的编码风格?

我知道谁喜欢这样做.
例如,如果业务逻辑是“如果爱丽丝不饿,或者如果爱丽丝和鲍勃都饿了”,而不是写

// 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),对右操作数进行评估.

(这个令人讨厌的事情是,乍一看,你会认为这是一个错误,但后来觉得你会看起来很愚蠢,如果你把它改为更明显的!)

解决方法

你肯定可以而且应该依赖于表达式的短路,但你给出的例子只是糟糕的编程.表达式的逻辑应该与评论和人类可读的测试逻辑相匹配.优化器完全理解布尔逻辑,并优化您的队友可能抱怨的任何明显的低效率.

最重要的是使开发人员的代码清晰易懂.编写聪明的代码来证明你是多么聪明,永远不是一个好习惯.

猜你在找的Java相关文章