对Swift Optionals的疯狂解释

时间:2014-06-14 21:10:36

标签: swift optional

this page有一个简单的" Swift期权的解释。

这家伙有一些疯狂的例子,如下:

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
}
你好吗?这些代码对我来说是相同的,除了第二个数组少了一个元素。为什么第二个不会执行是黑魔法或该家伙吸烟真的很糟糕。

他举了另一个例子:

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

同样的事情。

如果这是一个简单的解释,我就无法得到它。你们能解释一下吗?

1 个答案:

答案 0 :(得分:5)

分区功能

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

没有!会崩溃