Это действительный код в Swift:
println(nil < 1)
И результат будет правдой, аналогично
println(nil > 1)
будет ложным (число 1 произвольное, вы можете сделать то же самое для -1 и, возможно, что-то еще). Причина, по которой я спрашиваю, заключается в том, что я видел код, который пытался сравнить "some_string".toInt()
с числовым значением и скомпилировал его, что кажется неправильным, если toInt()
возвращает Int?
.
Мой вопрос: должен ли это быть синтаксисом в Swift? Если да, то каково числовое значение nil?
Обновление Swift 3.0:
Похоже, что Swift Evolution решает эту проблему удаление необязательных операторов сравнения. Это уже не проблема в Swift 3.0, поскольку она не компилируется.