如何判断哪个挡板出口?

时间:2016-09-18 21:16:48

标签: swift scope swift3 swift-guard

guard失败时,他们退出关闭。然而,让我感到困惑的是什么被认为是卫兵退出的阻挡?

例如,如果我有以下内容:

func doThing() {
  while ... {
    for ... {
      if ... {
        guard ... else { return }
      }
    }
  }
}

guard只退出ifforwhile或整个func吗?

实际规则是什么,因为我在定义block退出的内容时可以互换地使用closureguard个术语,但每个术语都以不同的方式暗示事物。< / p>

1 个答案:

答案 0 :(得分:1)

return语句用于从结果值(默认情况下为Void)退出最近的闭包(在您的情况下为函数),无论您在周期或if条件下有多深。可能你将returnbreak混为一谈。

但是,您也可以在break语句的continue子句中使用throwelseguard语句。例如,如果您使用break语句,则结束最近周期或switch语句的执行,或者,如果您mark cycle/if/switch by label并使用break后跟该标签,则退出标记声明。