“返回......”声明是否会“休息”;实际意义?

时间:2014-08-21 13:02:18

标签: objective-c return switch-statement

我从VB.NET背景来到Objective-C,其中switch语句是Select Case而且不需要break语句(或者可能)。

我知道一般规则是在每个break语句的末尾放置一个case语句,以便执行不会“落到”下一个case语句。

编写iOS应用时,我经常在switch方法中使用-tableView: heightForRowAtIndexPath:语句。基本上,我经常让我的单元格报告所需的高度,所以我最终得到switch这样的语句:

switch (indexPath.row) {
    case 0:
        return ...
        break;
    case 1:
        return ...
        break;

    ...

    default:
        return ...
        break;
}

我看到了this answer,这对我来说很有意义,也是我期望的答案,但这个问题是关于Java的,我想看看Objective-C是否也有同样的答案。

我还找到了this answer,它与C有关,我认为它也是Objective-C的正确答案。

那么,return语句是专门的break语句吗?

3 个答案:

答案 0 :(得分:13)

没有返回语句不是专门的中断。 return导致退出函数break导致退出switch语句。如果你有回报,你不需要休息,但它们是不同的东西。

答案 1 :(得分:2)

场景背后没有魔力。这里唯一的不同之处在于,只有在休息时你才会离开开关并返回功能。所以后果是显而易见的。如果你有回归,你不需要休息,因为永远不会达到休息时间。有些IDE会灰显,指出它不是可达的代码片段。

答案 2 :(得分:1)

是的,在阅读有关switchreturn的想法时,可以将return语句视为专门的break语句。

A break is just a branch table abstraction, so as return is,所以最终,他们将只执行一条跳转指令。