1

guard条件失败时,他们退出闭包。但是,让我感到困惑的是什么被认为是警卫退出的障碍?

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

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

guard退出只是if, for, ,while还是整个?func

实际规则是什么,因为我在定义退出的内容时已经阅读了可互换使用的术语,但是每个术语都暗示了不同的事物blockclosureguard

4

1 回答 1

1

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

但是,您也可以在语句的子句中使用break,continue或语句。例如,如果您使用语句,则结束最近循环或语句的执行,或者,如果您按标签标记循环//使用该标签后跟,则退出标记的语句。throwelseguardbreakswitchifswitchbreak

于 2016-09-18T21:23:25.797 回答