这可能是一个宗教论点,但在我的工作中一直争论是否所有IF语句都应该包含一个ELSE子句 - 即使ELSE子句只包含一条注释表明它是'故意留空'.
我听过双方的争论:'For'阵营 - 确保代码实际上已经解决了条件是否需要ELSE条款'反对'阵营 - 代码难以阅读,增加了太多的噪音
我对任何其他观点感兴趣,因为我必须以满足双方的答案来解决这场辩论.
谢谢您的帮助.
顺便说一句:我确实搜索了StackOverflow以获得答案,但却无法找到答案.如果有,只需包含一个链接并关闭.谢谢.
jld*_*ont 138
对我来说似乎无用的打字......以及可能造成混淆的原因.如果你不需要它,不要把它!
dre*_*ful 32
这里的回答很清楚,没有人觉得需要一个未使用的其他人.我从未听过或读过这样的事情.在你与同事/开发人员打交道之前,更重要的问题是,他们坚定地相信这就是如何使用If Then.
听起来你不是这个场景中的老人,所以你不能简单地判断它是如此.我建议要求"空的其他"方面显示在一本关于开发的书中(博客不计)这样的过程.更好的是,在3本关于发展的书中.自1982年以来,我已阅读了编程语言的编程书籍,我从未见过这样的建议.
这样你就不会告诉他们他们错了,他们可以采取个人行为.相反,你愿意接受这样的立场,但希望看到一些文件.他们有责任找到证据.要么是他们找到了,要么他们只是争辩说,每一本编写的编程书都是错的,只有他们是对的.
祝好运.
Tim*_*Tim 15
黄金法则:如果它使您的代码更清晰,更容易理解,请将其放入,否则将其留下.经验丰富的程序员将能够根据具体情况做出这些判断.
Fre*_*örk 11
正如你所说,这可能是一个风格问题,但我不会梦想在我的代码中插入空的else块只是因为"每个if-block都应该有一个".在我看来,除了代码中的更多字符之外,它还添加了一些其他内容,并且在代码审查期间花费更多时间(非常少的价值).
我倾向于使用"early if"语句作为降低嵌套大括号(或Python中的缩进)级别的方法,如下所示:
if (inParam == null) {
return;
}
if (inParam.Value < 0) {
throw new ArgumentException(...,...);
}
// Else ... from here on my if statements are simpler since I got here.
Run Code Online (Sandbox Code Playgroud)
当然,.Net 4.0现在有代码合同,这很棒!但是,大多数语言还没有,所以"早期ifs"(缺乏更好的术语)非常精确,因为它们消除了许多其他条款和嵌套ifs.我不认为在高级语言中使用else子句是有益的...即使在汇编中也是如此!这个想法是:如果你检查并且没有跳,那么条件是错误的,我们可以继续.对我来说具有逻辑意义......
编辑:看看这篇文章,看看为什么else
条款没有多大帮助:http:
//www.codinghorror.com/blog/2006/01/flattening-arrow-code.html
有一个只有空行代码注释的“else”通常意味着开发人员仔细考虑了条件,并更好地了解在给定时间实际采用的执行路径。所有最近的编译器都将删除“else”和注释,因此您不会减慢软件执行速度。
除非我错误地阅读了其他回复,否则看起来大多数人都反对在代码中声明他们的想法所花费的时间,而宁愿这样做。
归档时间: |
|
查看次数: |
77867 次 |
最近记录: |