2014-06-14 61 views
-1

this page對Swift optionals有一個「簡單」的解釋。Swift Optionals的瘋狂解釋

的傢伙是瘋了,像這樣的例子:

if let p = partitionArray([1, 2, 3, 4] as NSArray?) { 
    // this code will be called 
} 

if let p = partitionArray([1, 2, 3] as NSArray?) { 
    // this code won't be called 
} 

úWOT?這些對我來說是相同的代碼,除了第二個數組少一個元素。爲什麼第二個不會執行是黑魔法,或者這個人吸菸是非常糟糕的東西。

他給這個其他例子:

partitionArray([1, 2, 3, 4] as NSArray?)![0] // will work fine 
partitionArray([1, 2, 3] as NSArray?)![0] // will crash 

再次同樣的事情。

如果這是一個簡單的解釋我不明白。你們能解釋一下嗎?

+5

他明確指出:「* ...想象我們想要在兩個**等分大小的分區中拆分數組。」「 –

+0

我現在明白了。謝謝 – SpaceDog

+0

這個問題似乎是無關緊要的,因爲它寫的是一個不適合這個場地的健談風格。 –

回答

5

分區功能確實

if (p.count % 2 != 0) return nil; 

和零!將崩潰

+0

啊我現在看到了。我假設在第二行中它將返回零,然後發送到零的消息將會很好,但迅速不會允許消息在沒有崩潰的情況下通過。 AHHHH ......謝謝。 – SpaceDog