2016-09-18 144 views
1

guard不符合條件時,它們退出關閉。然而,讓我感到困惑的是什麼被認爲是警衛退出的障礙?如何判斷哪個防區退出?

舉例來說,如果我有以下幾點:

func doThing() { 
    while ... { 
    for ... { 
     if ... { 
     guard ... else { return } 
     } 
    } 
    } 
} 

是否guard出口僅有的ifforwhile或整個func

實際的規則是什麼,因爲我讀過blockclosure這些術語在定義guard退出時可互換使用,但每個術語都有不同的含義。 (你的情況函數)來退出關閉最近

回答

1

return語句的結果值(Void默認情況下),不管有多深你是在週期或if條件。可能你把returnbreak混淆了。

但是,你也可以使用breakcontinuethrow聲明guard語句else條款。例如,如果使用break語句,則可以結束最近週期或switch語句的執行,或者,如果您使用mark cycle/if/switch by label並使用break後跟該標籤,則退出標記語句。

相關問題