我有以下guard
语句,这会产生错误。怎么了?
guard NSFileManager.defaultManager().fileExistsAtPath(appBundlePath) else {
print("App bundle doesn't exist")
}
错误:“守卫”身体可能不会掉落
错误:'guard' body 不能通过,考虑使用 'return' 或 'throw' 退出范围
我有以下guard
语句,这会产生错误。怎么了?
guard NSFileManager.defaultManager().fileExistsAtPath(appBundlePath) else {
print("App bundle doesn't exist")
}
错误:“守卫”身体可能不会掉落
错误:'guard' body 不能通过,考虑使用 'return' 或 'throw' 退出范围
该guard
语句需要有一些东西来使程序流远离封闭范围(例如,最有可能的情况是return
从函数返回)。这是必需的,因为守卫正在守卫的条件将无效,因此程序流程需要转到其他地方!
文档:
保护语句的 else 子句是必需的,并且必须调用一个标有 noreturn 属性的函数,或者使用以下语句之一将程序控制转移到保护语句的封闭范围之外:
- 返回
- 休息
- 继续
- 扔
这是上述答案中解释的示例,以使其更清楚。
在程序的更外部范围内保护声明。
guard false else {
print("Condition is not true ")
}
print("Condition met")
此代码 s 产生此错误语句
错误:如果 guard statement.playground:1:1: error: 'guard' body may not fall through, 请考虑使用 'return' 或 'throw' 退出范围
简单的错误信息意味着,您需要使用 return、break、continue 或 throw 语句从保护语句转移程序控制。
带回传控制语句
guard false else {
print("Condition is not true")
return
}
print("Condition met")
在控制台输出
条件满足
考虑使用return
语句
return 语句出现在函数或方法定义的主体中,并导致程序执行返回到调用函数或方法。