Опции - одна из самых важных функций Swift. Мы регулярно используем его в языке программирования Swift. Кроме того, это самый распространенный вопрос (можно сказать, первый вопрос по основам) в любом собеседовании по iOS.

Необязательно - это перечисление с двумя значениями «none» и «some». Он используется, чтобы указать, что переменная (или константа) может иметь какое-то значение или не иметь значения. По умолчанию он будет иметь значение «ноль». Мы делаем переменную необязательной, используя «?» & «!» во время декларирования.

Распаковка необязательной переменной

Как я уже говорил ранее, необязательное значение обернуто как некоторое (значение). Чтобы получить значение, нам нужно его развернуть. Есть много способов получить развернутую ценность. Давайте обсудим один за другим на примерах.

№1 - Принудительное разворачивание. Если мы добавляем «!» при доступе к нему это называется принудительным разворачиванием. Это развернет значение.

Мы должны быть уверены, что переменная не равна нулю при принудительном обертывании. В противном случае возникнет ошибка времени выполнения.

# 2 - Необязательная привязка - это проверка, содержит ли optional значение, если оно не равно нулю (проверка нуля). Рекомендуемый способ разворачивания необязателен. Используя это, мы можем писать более предсказуемый и менее подверженный ошибкам код.

# 3 - Nil coalescing - необязательное развертывание со значением или значением по умолчанию, если nil.

Необязательное позволяет нам объявлять переменные без необязательного и без начального значения, но мы должны присвоить значение, прежде чем использовать его при другой ошибке времени компиляции. Это не может быть нулем.

Мы не можем присвоить nil какой-либо необязательной переменной. получит ошибку времени компиляции.

Может быть несколько случаев, когда мы можем также использовать необязательные. Однако мы должны быть уверены, что значение не будет нулевым за время существования этой переменной.

Неявно развернутый необязательно (дополнительный тип особого типа)

Если мы объявим переменную (или константу) с помощью символа «!» подписать. Это похоже на принудительную развёртку, но это не так. Мы определяем это во время объявления, а не позже.

До Swift 4.0 он использовался для разворачивания необязательного содержимого без добавления «!» при его использовании.

Это был специальный тип перечисления ImplicitlyUnwrappedOptional. Однако он был удален из Swift 4.0 (SE-0054).

Теперь, если вы неявно развернули любую переменную, она будет работать так же, как optional. Есть еще какое-то использование для того же самого. В моем следующем блоге я подробно остановлюсь на этой теме.

Дополнительные примечания -. В Objective-C мы можем возвращать nil из метода, но только для объектов. Для других, таких как struct, enumeration, Objective-C обрабатывает это по-другому (NSNotFound). В связи с этим мы должны быть уверены в особом типе ценности. Необязательный Swift помогает нам указать на отсутствие значения для любого типа.