我想在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