Swift语言:警卫声明后如何继续?
为什么Swift语言:警卫声明后如何继续?,swift,Swift,为什么continue会标记错误: 仅允许在循环内继续 如何解决此问题?continue语句应在循环中使用 如果要检查多个条件,则应在guard语句之后使用if语句,而不是guard您不能“继续”当前范围(在您的情况下,使用addToUnloadedImagesRow(uuu:forLocation:)方法)。guard语句的else块必须离开当前范围 总之,看看你的代码,我认为你只想这样做: private func addToUnloadedImagesRow(row: Int, forLo
continue
会标记错误:
仅允许在循环内继续
如何解决此问题?
continue
语句应在循环中使用
如果要检查多个条件,则应在guard语句之后使用if
语句,而不是guard
您不能“继续”当前范围(在您的情况下,使用addToUnloadedImagesRow(uuu:forLocation:)
方法)。guard语句的else块必须离开当前范围
总之,看看你的代码,我认为你只想这样做:
private func addToUnloadedImagesRow(row: Int, forLocation:String!) {
if unloadedImagesRows[forLocation] == nil {
unloadedImagesRows[forLocation] = [Int]()
}
unloadedImagesRows[forLocation]!.append(row)
}
如果您确实想使用guard
,您可以这样做:
private func addToUnloadedImagesRow(row: Int, forLocation:String!) {
guard unloadedImagesRows[forLocation] != nil else {
unloadedImagesRows[forLocation] = [row]
return
}
unloadedImagesRows[forLocation]!.append(row)
}
但就我个人而言,在这种情况下,我会发现一个if
更容易阅读。如果你想恢复函数,你需要使用if语句。
private func addToUnloadedImagesRow(row: Int, forLocation:String!) {
guard unloadedImagesRows[forLocation] != nil else {
unloadedImagesRows[forLocation] = [row]
return
}
unloadedImagesRows[forLocation]!.append(row)
}