我想在guard
语句中使用break
,但是编译器告诉我斯威夫特利用后卫声明破
“休息”,只允许在一个循环中,如果这样做,或交换机
可以写这样的代码片段(这只是一个MCV)?
func test(string: String?, x: Int) {
print("Function Scope BEGIN")
if x > 4 {
guard let pr = string else { break }
print(pr)
}
else {
print("Not")
}
print("Function Scope END")
}
你认为'break'会做什么? (即'test(nil,x:5)'的预期输出是什么?) – kennytm
你基本上在这里使用'goto'。考虑重构。 – Alexander
@kennytm这不是实际的代码,这是一个例子,预期的结果是不打印pr但打印“Function Scope END” – Andrea