Objective-C中“return”语句的含义是什么?

时间:2012-02-18 06:07:01

标签: objective-c return

Objective-C>中的return语句是什么意思?

例如,添加数字的简单计算器方法:

-(double) add: (double) value
{
    accumulator += value;
    return accumulator;
}

这是否意味着结果将被返回(或存储?)回到累加器?如果在那种情况下没有退货声明怎么办?

另外,如何解释声明"返回0;"我们在每个程序的最后写的。

提前致谢。

5 个答案:

答案 0 :(得分:6)

return语句中给出的值是函数或方法返回的值。在您的示例中,accumulator中的值将是调用方法-add:的结果,如下所示:

double bar = [foo add:3.1];

bar将获得accumulator中的值。

  

另外,如何解释声明“return 0;”我们在每个程序的最后写的。

在Unix中(记住,MacOS X和iOS都是Unix的风格),程序退出时会返回一个值。值0表示正常终止;其他值表示某种错误或异常终止。

答案 1 :(得分:2)

你的简单代码做了两件事。它更改累加器的值,然后将该值的副本返回到调用函数的任何位置。

如果函数被调用如:

float x = [self add:2.0];

x将成为返回语句所说的内容。

因为您正在更改实例变量,我怀疑您需要进行返回调用,函数可能返回void而不是double:

-(void)add:(double)value;

但是我想可能存在一种情况,你想要更新一个实例变量并返回相同的值。

答案 2 :(得分:1)

return是几乎所有编程语言中非常标准的语句。

它会“返回”它对调用它的方法/函数的权限。

请阅读以下内容:

  

http://en.wikipedia.org/wiki/Return_statement

  

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html

答案 3 :(得分:0)

不,它不会修改accumulator。它从消息中返回一个值(从accumulator复制)。这意味着它为任何称为消息的代码提供了值。

答案 4 :(得分:0)

如果调用此方法或程序的任何人或任何人不想要或使用调用的结果,那么除了在计算结果后退出被调用的方法或程序(如果还没有),return语句什么也不做。 / p>

如果函数,方法或程序的调用者确实需要结果(例如,对于赋值或在等式中使用),则return语句会说明结果值是什么。

程序实际上是OS调用的函数或方法,因此它可以向OS返回一个值。在Terminal中,键入echo $ status以查看shell命令的最后返回结果。