单个退货单清洁吗?

时间:2019-05-23 12:20:01

标签: c++

今天,我和我的同事在一个主题上存在分歧:

以下哪个是“清洁剂”,为什么? :

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;
}

我认为,由于编译过程而无关紧要。

1 个答案:

答案 0 :(得分:2)

由于编译过程,几乎在功能上无关紧要。

一些较早的文本建议使用 return,即您的第二个示例,因为他们说该函数的逻辑更易于跟踪。

我个人不喜欢混乱,并且发现第一个示例更易于阅读。在这两种情况下,您仍然都必须考虑和考虑该功能,只是第一个不涉及其他变量,并且可能会导致更多if / else混乱。

但是,第一个条件并不总是评估第二个条件,如果第二个条件有性能损失或副作用,那么您可能会感兴趣。

此外,编译器更容易忽略单个return语句(这在这里并不重要)。

但是,否则它是完全主观的。