Факультативы и опциональная привязка с самого начала.
Введение
Необязательные опции — одна из самых захватывающих и изящных функций языка программирования Swift. Поначалу это может показаться пугающим, но вместо этого это простая и убедительная тема, как только вы ее поймете. Цель этого руководства — узнать, что такое опции? а также ! и какие проблемы с использованием опций и как неправильно развернуть опции, а затем как их безопасно использовать.
Что это такое и почему я использую опционы
Факультативы — это не что иное, как что-то, чтобы иметь дело с небытием данных. Идея использования опций заключается в том, чтобы иметь дело с ситуацией, когда данные могут быть нулевыми или отсутствовать.
Давайте посмотрим на следующий пример
import Foundation
var name:String = "Vinayak"
var middleName: String = ""
var lastName:String = "S."
Теперь, в приведенной выше ситуации, у меня есть имя, фамилия, однако проблема в том, что у меня нет второго имени, поэтому, что должно произойти в такой ситуации. Как вы могли догадаться, нам нужно что-то, чтобы мы могли установить для этого свойства значение nil или ничего, потому что у нас нет никакой информации об этом. В такой ситуации мы используем опции.
Итак, давайте улучшим код и воспользуемся необязательными параметрами.
import Foundation
var name:String = "Vinayak"
var middleName: String?
var lastName:String = "S."
Итак, теперь мы ввели это «?» в конце объявления, значит ли это, что вы могли бы подумать 🤔. Таким образом, ответ заключается в том, что это необязательное значение, которое означает, что значение для этого может быть или не быть доступным.
Теперь давайте посмотрим на кое-что интересное
import Foundation
var name:String = "Vinayak"
var middleName: String?
var lastName:String = "S."
name = "Harsh"
middleName = "Kumar"
lastName = "P."
print("The first name is", name)
print("Middle Name is ", middleName)
print("The last name is ", lastName)
Теперь в приведенном выше примере я изменил имя, отчество и фамилию на другие значения, поскольку это переменная и изменяемая, если вы не уверены в этом, я бы порекомендовал вам прочитать мой другой пост о переменных и константах в swift кликните сюда. Теперь, когда я пытаюсь напечатать это, мы получаем предупреждение.
🤷♀️Что это за предупреждение? Вы могли подумать?
Причина этого предупреждения в том, что мы пытаемся напечатать что-то, что может или может нет иметь в этом какое-то значение. Если мы печатаем необязательный параметр, который не имеет никакого значения, программа рухнет. Итак, прежде чем перейти к решениям этой проблемы, давайте посмотрим, какие исправления дает мне Xcode.
Второе исправление с предупреждением: ! (Принудительное разворачивание)
Это решение исправляет предупреждение и теперь! Означает, что я уверен, что для этих необязательных переменных всегда есть значение, и если оно равно нулю, приложение будет аварийно завершено. Не рекомендуется! если вы не уверены на 100%, что необязательная переменная имеет значение и не может быть равна нулю. Теперь, если мы хотим использовать необязательное значение, нам нужно его извлечь, и это называется разверткой, и в этом случае мы заставляем его дать мне значение. Вот почему мы называем это Force Unwrapping.
Как мы можем безопасно развернуть опции.
**if let заявления **
import Foundation
var name:String = "Vinayak"
var middleName: String?
var lastName:String = "S."
name = "Harsh"
middleName = "Kumar"
lastName = "P."
print("The first name is", name)
if let middleN = middleName{
print("The middle Name is ", middleN)
}else{
print("There is no Middle Name")
}
print("The last name is ", lastName)
поэтому вышеприведенное утверждение — это то, что мы называем опциональной привязкой или безопасной разверткой. Условие if let выше проверяет, есть ли значение в middleName, затем присваивает переменной MiddleN и печатает middleN. Но если значения нет, он переходит к другому блоку и печатает, что среднего имени нет.