Swift error: guard body must not fall through

Swift error: guard body must not fall through

我有以下 guard 语句,它产生了一个错误。怎么了?

guard NSFileManager.defaultManager().fileExistsAtPath(appBundlePath) else {
    print("App bundle doesn't exist")
}

error: 'guard' body may not fall through

error: 'guard' body must not fall through, consider using a 'return' or 'throw' to exit the scope

guard 语句需要有一些东西来使程序流远离封闭范围(例如,最可能的情况是函数中的 return 到 return) .这是必需的,因为守卫正在守卫的条件将无效,因此程序流程需要转到其他地方!

Documentation:

The else clause of a guard statement is required, and must either call a function marked with the noreturn attribute or transfer program control outside the guard statement’s enclosing scope using one of the following statements:

  • return
  • break
  • continue
  • throw

考虑使用 return 语句

return 语句出现在函数或方法定义的主体中,并导致程序执行 return 到调用函数或方法。

以下是上述答案中解释的示例,以使其更清楚。

guard 语句在程序的更外部范围内。

guard false else {
    print("Condition is not true ")
}
print("Condition met")

此代码 s 产生此错误语句

error: If guard statement.playground:1:1: error: 'guard' body may not fall through, consider using a 'return' or 'throw' to exit the scope

错误信息简单的意思是,你需要使用return、break、continue 或throw 语句从guard 语句转移程序控制。

用return传输控制语句

guard false else {
    print("Condition is not true")
    return
}
print("Condition met")

控制台输出

Condition met