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) .这是必需的,因为守卫正在守卫的条件将无效,因此程序流程需要转到其他地方!
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
我有以下 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) .这是必需的,因为守卫正在守卫的条件将无效,因此程序流程需要转到其他地方!
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