![]() |
1
29
一个更简单的代码片段是
换言之,把任务和使用它分开。 |
![]() |
2
5
与示例一样聪明,可读性和可维护性始终是最聪明的想法。 对于条件运算符,最多只能有两个值,如果条件超过了最大值,则可能无法读取。条件运算符不是处理不同值的标准方法。 |
![]() |
3
1
我反对在if语句的每个分支中对函数进行长时间的手工调用,因为不总是很清楚要调用的函数是否相同,如果需要更改被调用的函数,那么有两个地方需要更改(好吧,“添加”是一个简单的例子)。出于这个原因,我通常会将正确的对象赋给一个变量(通常是在if语句中,因为通常也会有一些其他的事情发生),但是将所有公共代码从条件中拉出来。 |
![]() |
4
1
我的首选方法是:
首先,我不喜欢调用,也不喜欢将值赋给临时变量(test(foo)调用),原因有两个:
第二,我不喜欢代码,如果你模糊了你的眼睛,它看起来是一样的。如果你的眼睛“模糊”的话,加上(foo)和cother.add(foo)“看起来”是一样的。例如,如果您将其更改为列表,并使用add(int,e)而不是add(e),那么您只有一个地方可以更改代码,这意味着对错误的更改更少(如cone.add(1,foo)和cother.add(2,foo),而这两个地方都应该是add(1,foo))。 编辑(基于注释) 有几个选择,这取决于代码的布局方式。我可能会选择:
然后有如下的东西:
本质上,我为块内的任何内容创建了一个方法,如果它有意义的话(通常是这样)。我喜欢有很多小方法。 |
![]() |
5
1
使用条件运算符的一个潜在问题是,参数开始变得更复杂。例如,如果以下行引发NullPointerException:
三种不同的引用中哪一种导致了NPE?
也就是说,比较以下两段代码:
VS
大多数人会认为条件句更容易理解,而且肯定更简洁。 现在,如果这样做了,我会使用一个条件来调用一个方法吗?不,它增加了很多视觉复杂性,必须记住,调试的难度是写代码的两倍。这意味着代码越简单,您或其他人在六个月内理解它就越简单。我很乐意在接受的答案中使用两行版本。 |
![]() |
6
1
用于此目的的条件运算符非常罕见,因此眼睛实际上并不寻找它。 我喜欢我的Java代码看起来是一致的,这样我和将来的维护者可以很容易地发现像分支一样的东西,太多的复杂性等等。因为我在别处使用IFS,我通常可以通过使用有条件的方法来吸收它。 如果我使用的是一种通过表达式(比如python)进行很多“技巧”的语言,那就另当别论了。 |
![]() |
7
0
imho“完整的”,长版本是一个有点可读性和肯定更好的长期维护。 |
![]() |
8
0
我更喜欢第一个(或马特的中间溶液)。只是比较短。如果在项目中经常使用条件运算符,人们就会习惯它,并且“可读性”也会增加。 或者换句话说:如果您习惯于Perl,那么您可以很容易地阅读它。 |
![]() |
9
0
除了Matt B所说的,当您决定使用条件运算符时,您可以进一步使用此格式:
它给代码更多的if-else感觉,并使其更容易阅读。 |
![]() |
Alex Pander · cleaner代码的嵌套命名空间[已关闭] 7 年前 |
![]() |
Jamil Noyda · 导入模块的最佳方式Python[复制] 7 年前 |
![]() |
Samselvaprabu · 我们是否需要不惜任何代价避免重复? 7 年前 |
![]() |
user9549524 · 基于一列的值从二维矩阵中提取值 7 年前 |
![]() |
MedAl · 不使用try/catch处理异常 7 年前 |
![]() |
Declan McKenna · 特殊情况模式在Swift中是否多余? 7 年前 |