给定以下代码片段,是否有明显的区别?
public boolean foo(int input) {
if(input > 10) {
doStuff();
return true;
}
if(input == 0) {
doOtherStuff();
return true;
}
return false;
}
对比。
public boolean foo(int input) {
if(input > 10) {
doStuff();
return true;
} else if(input == 0) {
doOtherStuff();
return true;
} else {
return false;
}
}
这段代码是否应该遵循单一出口原则呢?...
public boolean foo(int input) {
boolean toBeReturned = false;
if(input > 10) {
doStuff();
toBeReturned = true;
} else if(input == 0) {
doOtherStuff();
toBeReturned = true;
}
return toBeReturned;
}
这三种写法在性能上有明显的差异吗?你觉得哪一种更易于维护和阅读?
input>5
和0 ==(input%2)
),那么情况就完全不同了。考虑您正在测试的条件的范围以及它在未来更新中可能会发生的变化。至于单一出口原则,我看过它使一些代码更易读,而使其他代码更难读,因此将其视为工具而非戒律。 - NVRAM