有没有人知道Swift中"(nil <0)== true"和"(nil <= 0)== true"背后的基本原理?

Jer*_*one 12 null swift swift2

我认为Swift是一种构造得很好的现代语言,然而,有一件事让我感到困惑,那就是有(nil <= 0)== true(nil <0)== true的理由.

以下是更多案例:

在此输入图像描述

无论如何,返回true为nil <0似乎违背了整个可选概念,其中一个参数是关于避免默认数字初始化为"0".现在"0"再次特别.

任何人都有任何解释,Swift决定让(nil <= 0)和(nil <0)返回true.

gna*_*729 15

可选项具有可比性,因此可以对它们进行排序.规则很简单:

  1. 任何两个比较均等的选项.
  2. 如果其中一个期权为零而另一个期权不是,则nil小于非零.
  3. 如果两个选项都不是nil,则比较未包装的值.

因此,nil等于nil,并且nil小于任何非零可选项.

它与您指定的值0无关.分配-1000或+100,或任何你喜欢的,你得到相同的结果.