作为我不久前写的代码标准文档的一部分,我强制要求“您必须始终对循环和/或条件代码块使用大括号,即使(特别是)它们只有一行。”
Example:
// this is wrong
if (foo)
//bar
else
//baz
while (stuff)
//things
// This is right.
if (foo) {
// bar
} else {
// baz
}
while (things) {
// stuff
}
当你不加括号,然后有人将其注释掉时,你就有麻烦了。如果您不使用单行大括号,并且缩进在其他人的机器上显示不一样......您就有麻烦了。
那么问题来了:是否有充分的理由解释为什么这是一个错误或不合理的标准?关于它已经有一些讨论,但没有人能给我提供比“感觉丑陋”更好的反驳。
我能提供的最好的反驳论点是,空间占用的额外行会减少您一次可以看到的代码量,而您一次可以看到的代码量是影响易用性的一个重要因素。是为了发现错误。我同意你给出的包含大括号的原因,但是在 C++ 的许多年里,我只能想到一次我因此犯了一个错误,而且是在一个我没有充分理由跳过大括号的地方反正。不幸的是,我无法告诉您这些额外的代码行在实践中是否有帮助。
我可能更有偏见,因为我喜欢在相同缩进级别匹配大括号的对称性(以及将包含的语句隐式分组为一个执行块) - 这意味着添加大括号all时间给项目增加了很多行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)