对Swift Optionals的疯狂解释

Spa*_*Dog -1 optional swift

这个页面有一个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
}
Run Code Online (Sandbox Code Playgroud)

你好吗?这些代码对我来说是相同的,除了第二个数组少了一个元素.为什么第二个不会执行是黑魔法或该家伙吸烟真的很糟糕的东西.

他举了另一个例子:

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

同样的事情.

如果这是一个简单的解释我不明白.你们能解释一下吗?

Chr*_*ich 5

分区功能

if (p.count % 2 != 0) return nil;
Run Code Online (Sandbox Code Playgroud)

没有!会崩溃