关于条件判断的一点吐槽

2022-05-23 11:53:29 +08:00
 HarrisonLee

为什么有很多下面这种条件判断写法,甚至包括一些开源项目:

if(!condition) {

} else {

}

如果是单个 if 还能理解,既然这里有 else ,为什么 if 后面还要对条件求反,让读者多转一个弯!

1338 次点击
所在节点    Java
6 条回复
anonydmer
2022-05-23 11:59:27 +08:00
这也要归到 java 节点下?
daimubai
2022-05-23 12:02:24 +08:00
有可能 else 是后加的吧
buxudashi
2022-05-23 12:05:28 +08:00
可能是因为 condition 是多个吧。转一下变成一个。
比如,false,0,null,undefined 等等, 这一类的都统一转一下。这是智慧。你不要吐。
libook
2022-05-23 12:14:10 +08:00
@anonydmer #1 哈哈哈,看到这个回复绷不住地笑了……

@HarrisonLee 有时候业务上的关注是有侧重点的,而一些人希望先看到最关注的东西;比如业务上关注的条件在代码里只能使用“!condition”这种方式来表达,如果强行掰成“condition”并交换 if 和 else 块,计算机倒是无所谓,但是人顺着业务需求来看代码就也需要在大脑里进行一下转换。我个人倾向于业务需求文档咋写,代码就怎么写,让读代码尽可能少些逻辑转换,提高效率、降低 bug 概率。
当然,也不是说这种是唯一用来提高可读性的方式,也可以用注释,或者单独声明一个反义变量,这个就是看个人或团队的代码风格了。
最后只能说这种写法不是禁忌,也不一定任何时候都没有好处,具体还是看情景,看是不是确实没必要。
AoEiuV020CN
2022-05-23 12:36:22 +08:00
搜了下我公司项目也大量这种写法,最常见的是,
if (!TextUtils.isEmpty(xxx)) {
yyy
} else {
zzz
}
重点在非空,而不是空,所以就 if 非空,
IvanLi127
2022-05-23 13:02:19 +08:00
这个甚至和花括号里的行数有关系,我就比较喜欢特别短的分支写在前面,长的放后面

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/854666

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX