22/305 sprint 1 Неопциональные типы и опционалы!

🌀 Неопциональные типы Я уже знакома с основными типами данных: Int, String, Float, Double и Bool. Например, я создала переменную для хранения температуры воздуха:

var temperature: Int

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

🌀 Отсутствие значения — тоже значение Иногда отсутствие значения может быть значимым. Например, когда мы получаем данные с сервера. В таких случаях переменная может оставаться пустой до тех пор, пока мы не получим нужные данные:

var messageRecieved: Bool = false var message: String

Здесь мы можем использовать переменную messageRecieved, чтобы проверить, получили ли мы сообщение.

🌀 Что такое опционалы? Опционалы — это возможность сообщить программе, что переменная может иметь значение или нет. Чтобы создать опционал, просто добавьте знак вопроса ? к типу:

var temperature: Int?

Теперь, если я попытаюсь вывести temperature, результатом будет nil, что означает отсутствие значения.

🌀 Проверка на nil Благодаря опционалам мы можем избежать создания лишних переменных. Например, вместо проверки messageRecieved, я просто проверяю значение message на nil:

if message != nil { print(message) }

Если мы присвоим значение message:

message = "Hello, Astronaut"

То выведется Optional("Hello, Astronaut"). Это значит, что теперь у нас есть значение