1

可能重复:
在函数开头使用 return 以避免做不必要的工作是不好的风格吗?

除了个人喜好之外,是否还有其他考虑是否要提前返回或使用 if 包含一个长方法,例如:

foo(bool bar)
{
    if(!bar)
    {
       return; 
    }

    ...
}

对比

foo(bool bar)
{ 
    if (bar)
    {
       ...

       return;
    }
}
4

1 回答 1

2

使用

foo(bool bar)
{ 
    if (bar)
    {
       ...

       return;
    }
}

如果您在 if 块中有多个条件要测试,可能会有点麻烦。如:

foo(bool bar)
{ 
    if (bar)
    {
       ...
        if (baz)
        {
            ...
            if (barbaz)
            {
                ...
            }
        }
        return;
    }
}

在这种情况下,如果你提前返回,你会减少很多嵌套。

foo (bool bar)
{
    if (!bar) return;
    ...
    if (!baz) return;
    ...
    if (!barBaz) return;
    ...
    return;
}

事实上,作为 ReSharper 用户,我经常使用代码重新格式化建议“反转 if 以减少嵌套”。最后,我认为这是一个偏好,但对我来说,当没有太多嵌套的 if 来匹配大括号时,它似乎更具可读性。

于 2012-11-25T21:36:50.073 回答