今天,我和我的同事在一个主题上存在分歧:
以下哪个是“清洁剂”,为什么? :
bool check(){
if(!test to do){
return false;
}
if(!other test to do){
return false;
}
return true;
}
或者:
bool check(){
bool result = true;
if(!test to do){
result = false;
}
if(!other test to do){
result = false;
}
return result;
}
我认为,由于编译过程而无关紧要。
答案 0 :(得分:2)
由于编译过程,几乎在功能上无关紧要。
一些较早的文本建议使用单 return
,即您的第二个示例,因为他们说该函数的逻辑更易于跟踪。
我个人不喜欢混乱,并且发现第一个示例更易于阅读。在这两种情况下,您仍然都必须考虑和考虑该功能,只是第一个不涉及其他变量,并且可能会导致更多if
/ else
混乱。
但是,第一个条件并不总是评估第二个条件,如果第二个条件有性能损失或副作用,那么您可能会感兴趣。
此外,编译器更容易忽略单个return语句(这在这里并不重要)。
但是,否则它是完全主观的。