我从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
声明吗?
没有退货声明不是专门的休息。 return导致退出函数break导致退出switch语句。如果你有回报,你不需要休息,但他们是不同的东西。
场景背后没有魔力。这里唯一的不同之处在于,只有在休息时你才会离开开关并返回功能。所以后果是显而易见的。如果你有回归,你不需要休息,因为永远不会达到休息时间。有些IDE会灰色指出你是不可达的代码片段。
阅读关于switch
和return
的想法,是的,return
声明可以被视为专门的break
声明。
A break
is just a branch table abstraction, so as return
is,所以在一天结束时,他们只会执行跳转指令。