我在这两种风格中看到了很多方法:
1.
void foo() {
if(!good) {
return;
}
doFoo();
}
2.
void foo() {
if(good) {
doFoo();
}
}
我想知道这只是一个品味问题,还是一个实际上比另一个好。有谁知道有关于此的任何证据? (样式检查规则,书籍等) 我主要想的是用Java编写的代码。
答案 0 :(得分:2)
取决于项目团队的代码风格规则。
如果if
语句检查方法合同我更喜欢fast fail
方法。
答案 1 :(得分:0)
我相信它全部取决于你的程序逻辑和要求。在你的第一个例子中,只有在你的if条件不满足时才会调用doFoo(),而在你的第二个选项中,如果满足条件,则会调用doFoo()。
你可以阅读java程序员的编码约定,这是非常好的http://www.oracle.com/technetwork/java/codeconvtoc-136057.html
答案 2 :(得分:0)
在这两者之间,第二种选择是更好的恕我直言。如果有更多if-else
个分支,最终可能会出现多个return
语句,导致代码难以导航(在大多数情况下,但有时它会对您的代码产生影响)。
答案 3 :(得分:0)
第一个变体处理额外的嵌套。这取决于项目的代码样式约定和方法逻辑。 我建议你阅读Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin