以下两项似乎都会返回,因此有理由在方法中使用return
吗?
- (void)goDoIt {
[self doSomething];
[self doSomethingAndReturn];
}
- (void)doSomething {
// just visiting
}
- (void)doSomethingAndReturn {
return; // returning now
}
有什么不同吗?
答案 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的方法返回一个值,则会出现编译错误。