“返回......”声明是否会“破裂”?

问题描述 投票:9回答:3

我从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是否也有同样的答案。

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

那么,return声明是一个专门的break声明吗?

objective-c return switch-statement
3个回答
14
投票

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


2
投票

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


1
投票

阅读关于switchreturn的想法,是的,return声明可以被视为专门的break声明。

A break is just a branch table abstraction, so as return is,所以在一天结束时,他们只会执行跳转指令。

© www.soinside.com 2019 - 2024. All rights reserved.