Нили-коалесцирующий оператор (а ?? б) разворачивает в optianl а, если он содержит значение, или возвращает значение по умолчанию значение b, если a равно nil. Выражение a всегда имеет необязательный тип.Это не вызывает какие-либо ошибки, когда применить оператор Nil-коалесцирующем на ни необязательной переменной
Оператор Nil-Коалесцентный является сокращением для кода ниже
а! = Ноль? а! : Б
Я тогда попробовал следующий тест Фрагмент кода
//First
let a: Int = 3, b: Int = 4
a ?? b // No error
&
//Second
let a: Int = 3, b: Int = 4
a != nil ? a! : b //Triggers an error: value of type 'int' can never be nil, comparison isn't allowed
Вопрос:
Почему компилятор не дал ошибка для первого фрагмента кода при крике ошибка для второго? Разве они не такие же?
Большое спасибо