为什么有很多下面这种条件判断写法,甚至包括一些开源项目:
if(!condition) {
} else {
}
如果是单个 if 还能理解,既然这里有 else ,为什么 if 后面还要对条件求反,让读者多转一个弯!
1
anonydmer 2022-05-23 11:59:27 +08:00
这也要归到 java 节点下?
|
2
daimubai 2022-05-23 12:02:24 +08:00
有可能 else 是后加的吧
|
3
buxudashi 2022-05-23 12:05:28 +08:00
可能是因为 condition 是多个吧。转一下变成一个。
比如,false,0,null,undefined 等等, 这一类的都统一转一下。这是智慧。你不要吐。 |
4
libook 2022-05-23 12:14:10 +08:00
@anonydmer #1 哈哈哈,看到这个回复绷不住地笑了……
@HarrisonLee 有时候业务上的关注是有侧重点的,而一些人希望先看到最关注的东西;比如业务上关注的条件在代码里只能使用“!condition”这种方式来表达,如果强行掰成“condition”并交换 if 和 else 块,计算机倒是无所谓,但是人顺着业务需求来看代码就也需要在大脑里进行一下转换。我个人倾向于业务需求文档咋写,代码就怎么写,让读代码尽可能少些逻辑转换,提高效率、降低 bug 概率。 当然,也不是说这种是唯一用来提高可读性的方式,也可以用注释,或者单独声明一个反义变量,这个就是看个人或团队的代码风格了。 最后只能说这种写法不是禁忌,也不一定任何时候都没有好处,具体还是看情景,看是不是确实没必要。 |
5
AoEiuV020CN 2022-05-23 12:36:22 +08:00 1
搜了下我公司项目也大量这种写法,最常见的是,
if (!TextUtils.isEmpty(xxx)) { yyy } else { zzz } 重点在非空,而不是空,所以就 if 非空, |
6
IvanLi127 2022-05-23 13:02:19 +08:00 via Android
这个甚至和花括号里的行数有关系,我就比较喜欢特别短的分支写在前面,长的放后面
|