【问题标题】:Are return statements necessary? [duplicate]是否需要退货声明? [复制]
【发布时间】:2014-03-01 08:23:50
【问题描述】:

以下两个似乎都返回了,那么有理由在方法中使用return 吗?

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

- (void)doSomething {
  // just visiting
}

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

有什么不同吗?

【问题讨论】:

    标签: objective-c return


    【解决方案1】:

    “return”一般用于发回数据,而不是告诉程序返回到调用函数的位置。

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

    在此处阅读有关 Objective-c 函数的更多信息:Tutorials Point

    【讨论】:

      【解决方案2】:

      在使用返回类型定义的方法中,显然 return 是必要的。在定义为不返回任何内容的方法或函数中 (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
         }
      

      【讨论】:

        【解决方案3】:

        一个objective-c是面向对象的。函数是过程编程中的一个概念。面向对象使用方法代替。您的所有示例都执行相同的操作,因为它们返回 void。如果您的方法需要返回变量,那么您将必须放置一个 return 语句。

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

        【讨论】:

          【解决方案4】:

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

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

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

          如果您尝试从声明为 void 的方法返回值,您将收到编译器错误。

          【讨论】:

            猜你喜欢
            • 2016-03-14
            • 1970-01-01
            • 1970-01-01
            • 2016-06-23
            • 2012-01-02
            • 2012-10-04
            • 2013-07-11
            • 2011-08-10
            • 1970-01-01
            相关资源
            最近更新 更多