有沒有之間的任何功能上的差異:多重讓保護陳述與單一讓步一樣嗎?
guard let foo = bar, let qux = taco else {
...
}
和:
guard let foo = bar, qux = taco else {
...
}
在我看來,它們是相同的和額外的let
不需要?
有沒有之間的任何功能上的差異:多重讓保護陳述與單一讓步一樣嗎?
guard let foo = bar, let qux = taco else {
...
}
和:
guard let foo = bar, qux = taco else {
...
}
在我看來,它們是相同的和額外的let
不需要?
這些都是在斯威夫特3.不同在這種情況下:
guard let foo = bar, let qux = taco else {
你說「可選,不折酒吧到foo中。如果成功,可選擇將玉米麪包解開成qux,如果成功繼續,則...「
另一方面:
guard let foo = bar, qux = taco else {
說「可選 - 解包到foo中。作爲一個布爾值,評估assignement聲明qux = taco
「自賦值語句不返回布爾斯威夫特,這是一個語法錯誤。
這一改變使更加靈活guard
語句,因爲你可以在整個鏈混雜可選的解包和布爾。在Swift 2.2中,你必須解開所有東西,然後在where
子句的末尾進行所有的布爾檢查(有時使其無法表達條件)。
好的,很高興知道。顯然我還在swift 2上。我有一個linter抱怨第一個語法,當我們升級時需要改變。 KS! –
如果你使用Swift 2.3,Xcode 8本身會週期性地顯示一個錯誤,然後在編譯器做出的最後一遍中消失。 – PeejWeej
第二個變種在Swift 2中是允許的,但不是已經在Swift 3中了。 –