Objective-C>中的return语句是什么意思?
例如,添加数字的简单计算器方法:
-(double) add: (double) value
{
accumulator += value;
return accumulator;
}
这是否意味着结果将被返回(或存储?)回到累加器?如果在那种情况下没有退货声明怎么办?
另外,如何解释声明"返回0;"我们在每个程序的最后写的。
提前致谢。
答案 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是几乎所有编程语言中非常标准的语句。
它会“返回”它对调用它的方法/函数的权限。
请阅读以下内容:
和
答案 3 :(得分:0)
不,它不会修改accumulator
。它从消息中返回一个值(从accumulator
复制)。这意味着它为任何称为消息的代码提供了值。
答案 4 :(得分:0)
如果调用此方法或程序的任何人或任何人不想要或使用调用的结果,那么除了在计算结果后退出被调用的方法或程序(如果还没有),return语句什么也不做。 / p>
如果函数,方法或程序的调用者确实需要结果(例如,对于赋值或在等式中使用),则return语句会说明结果值是什么。
程序实际上是OS调用的函数或方法,因此它可以向OS返回一个值。在Terminal中,键入echo $ status以查看shell命令的最后返回结果。