java - 依赖Java的短路求值(编码风格)

标签 java coding-style

<分区>

在 boolean 计算中严重依赖短路是否是一种好的编码风格?

我认识一个喜欢这样做的人。 例如,如果业务逻辑是“如果爱丽丝不饿或者如果爱丽丝和鲍勃都饿了”,而不是写

// 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)

认为 || 是短路的,因此当且仅当第一个为 false 时才计算右操作数(这意味着 A =真).

(恼人的是,乍一看,你会认为这是一个错误,但如果你把它改成更明显的,你会觉得自己看起来很愚蠢!)

最佳答案

你当然可以而且应该依靠表达式中的短路,但你给出的例子只是糟糕的编程。表达式的逻辑应该与注释和测试的人类可读逻辑相匹配。优化器完全理解 boolean 逻辑,并将优化您的队友可能提示的任何明显的低效率。

最重要的是让代码清晰易懂。编写聪明的代码来证明你有多聪明从来都不是一个好习惯。

关于java - 依赖Java的短路求值(编码风格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23699268/

相关文章:

java - Java 中的 "last accessed"与 "last modified"文件日期(Windows)

java - 获取MySQL安装路径

php - 我需要一个很好的工具来设计我的代码——即间距、括号等

java - 更好的 Java 方法语法?早归还是晚归?

java - JDO/重复条目异常

java - 如何在java中创建对话框窗口?

java - 单击按钮从回收器 View 中删除项目。按钮是从回收器 View 外部设置的吗?

python - "retval"是好的 python 风格吗?

c# - 是否有人发布了任何 C# 4 编码标准/指南/风格指南?

haskell - 使用长 where 语句是不好的编码风格吗?