【问题标题】:Insane explanation of Swift Optionals对 Swift Optionals 的疯狂解释
【发布时间】:2014-06-14 21:10:36
【问题描述】:

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

同样的事情。

如果这是一个简单的解释,我不明白。能解释一下吗?

【问题讨论】:

  • 他明确指出:“...假设我们想将一个数组分成两个大小相等的分区。
  • 这个问题似乎是题外话,因为它是用不适合这个场地的健谈风格写的。

标签: swift optional


【解决方案1】:

分区函数有

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

和零!会崩溃

【讨论】:

  • 啊我现在明白了。我假设在第二行中它会返回 nil ,然后会出现一条到 nil 的消息会很好,但 swift 不允许消息传递到 nil 而不会崩溃。啊……谢谢。
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多