返回声明是否必要?

时间:2014-03-01 08:23:50

标签: objective-c return

以下两项似乎都会返回,因此有理由在方法中使用return吗?

- (void)goDoIt {  
  [self doSomething];
  [self doSomethingAndReturn];
}

- (void)doSomething {
  // just visiting
}

- (void)doSomethingAndReturn {    
  return; // returning now 
}

有什么不同吗?

4 个答案:

答案 0 :(得分:2)

“return”通常用于发回数据而不是告诉程序返回调用函数的位置。

函数名前面的(void)告诉我们该函数在完成运行后不会返回任何内容。例如,如果您想要一个函数来计算一个数字,那么您将为整数而不是(void)写入(int)。然后该函数需要包含至少一个return语句。喜欢:“返回结果;”
函数可以有多个return语句,它们结束函数并返回一个值。 在void函数中,return语句可用于提前结束函数执行,否则在void函数中不需要return语句。

在此处详细了解objective-c函数:Tutorials Point

答案 1 :(得分:1)

在使用返回类型定义的方法中,显然需要返回。在定义为不返回(void)的方法或函数中,它们不是必需的。然而,它们提供了一种过早结束方法的方法。例如:

- (void)myMethod {
    //doing some things here
    if (myVariable < 2) {
        // done here
        return;
    }
    // the following will only be run if myVariable is larger than 1
   }

答案 2 :(得分:0)

一个目标-c是面向对象的。函数是过程式编程中的一个概念。面向对象使用方法。你的所有例子都做同样的事情,因为它们返回无效。如果你的方法需要返回变量,那么你必须放一个return语句。

-(int)someMethod
{
//code executed
return 5;
// code after return not executed
}

答案 3 :(得分:0)

声明为void的任何方法都不返回值。它不需要包含return语句,但它可以这样做。 在这种情况下,可以使用return语句分支出控制流程块并退出方法,如:

void doSomething(int a) {
    if (a == 0) {
       //do something
       return;
    }
    //Otherwise, do something
}

因此,如果(a == 0)为真,那么在return语句之后写的代码将不会执行,否则写在if块之外的代码将被执行。

如果尝试从声明为void的方法返回一个值,则会出现编译错误。