考虑一下这段代码:
if (x == 1)
{
throw "no good; aborting" ;
}
[... more code ...]
现在考虑以下代码:
if (x == 1)
{
throw "no good; aborting" ;
}
else
{
[... more code ...]
}
这两种情况的工作方式完全相同。第一种情况的优点是您不必将其余代码“括入”中else
。第二个优点是遵循显式具有else
for每个的实践if
。
任何人都可以提供任何有力的论据来支持一个胜于另一个吗?
一致性?面对代码更改是否具有鲁棒性?可读性?
—
托马斯·爱丁
恩,我不太喜欢每个人都
—
乱七八糟的
if
需要一个的想法else
。最后一个在我们的代码库上工作的程序员紧随其后(好吧,有时……这是精神分裂症)。结果,我们有很多完全无意义else { /* do nothing */ }
的代码
“每一个假设都有别的”似乎是由云架构师以(愚蠢的)一致性的名义发布的一个奇怪的声明。我认为遵循该做法没有任何好处,甚至从未在任何地方听说过。
—
艾里克·迪特里希
这是多余的。如果使用的是.NET堆栈,则请安装ReSharper,它会提醒您删除所有多余的else语句。
—
CodeART 2012年
else
似乎是伪造的。通常,else
除非向后弯曲,否则根本没有任何东西可放入该块中。