【发布时间】:2019-02-11 14:43:58
【问题描述】:
默认情况下,与 nil / NULL 不同的可选值不能与数值进行比较。必须采取哪些步骤才能拥有,例如nil < 1 和 nil < 1.0 评估为真?
【问题讨论】:
-
(optionalVar ?? 0) == 0? -
我认为在 Swift 3 中删除了与 nil 的可选比较:github.com/apple/swift-evolution/blob/master/proposals/…
-
@PaulPeelen:您仍然可以测试 equality 的可选项(如果底层类型允许的话)——只有
<和朋友的可选项已被删除。当然nil永远不会比较等于非零值。 -
... 来自 SE-0121:接受可选操作数的 == 和 != 的变体仍然有用,而且它们的结果并不令人惊讶,因此它们将保留。跨度>
-
这样的比较真的没有意义。离说“我可以采取哪些步骤来制作
"Bob" < "Alice"?”不远了。答案不是编辑String类型,而是做一个更好的比较器。为了比较选项,我made this.