return;void函数中。它实际上是做什么的?

void function() {
    if(x==NULL) {
        return;
    }
    else{
        /////
    }
}

最佳答案

在您展示的示例中,return什么也不做。但想想这个例子:

void do_the_thing()
{
    if(it's already done)
        return;

    do the thing;
}

如果做这件事是昂贵的,或者如果已经做了会引起问题,你会喜欢这样的逻辑。而且,除了“开销”之外,在任何给定的调用期间,函数都有很多理由选择不执行其全部操作。
换句话说,从一个void函数返回,虽然它不会返回值,但至少会阻止该函数执行任何后续操作。
(现在,也就是说,在函数中间有一个return并不是实现这一点的唯一方法。与导致函数提前返回的if语句不同,您可以使用if语句或else子句使函数仅在需要时执行操作。回到我的例子,你也可以写
void do_the_thing()
{
    if( ! already done) {
       do the thing;
    }
}

这就引出了一个永恒的风格争论,也就是说,在一个函数中散布多个return语句是一个好主意还是一个坏主意,或者最后是否应该始终只有一个语句。)

10-08 08:22
查看更多