Failable-инициализаторы в Swift | OTUS
Запланируйте обучение с выгодой в Otus!
-15% на все курсы до 27.11 Забрать скидку! →
Выбрать курс

Failable-инициализаторы в Swift

В языке программирования Swift существует специальная разновидность инициализаторов -- Failable-инициализаторы. Они позволяют возвращать nil-значение, когда произошла какая-либо ошибка в процессе инициализации объекта. Давайте посмотрим, как это может выглядеть в коде:

1-1801-eb0518.png

Так как пользователь, который представлен классом User, не может иметь возраст менее нуля (это невозможно в принципе), то и ситуация по передаче числа меньше нуля по сути является ошибочной. И вот как раз здесь и следует применить failable-инициализатор.

Чтобы определить данный инициализатор, надо после слова init поставить знак вопроса, ну а в самом инициализаторе следует предусмотреть ситуацию, при которой будет возвращено nil-значение:

2-1801-43a537.png

Когда мы возвращаем nil, мы таким образом указываем, что не можем создать объект User, основываясь на данных, переданных в инициализатор.

Также следует понимать, что объект, который создается этим инициализатором, станет представлять не тип User, а уже тип User?. Следовательно, для получения значения потребуется еще операция ! (восклицательный знак):

3-1801-b7d752.png

Как вариант -- работать напрямую с объектом User?:

4-1801-fdfbe1.png

При этом важно учитывать, что в случае передачи неправильных данных инициализатор вернет nil, а получение значения закончится ошибкой. Чтобы этого не произошло, рекомендуется перед применением объекта выполнять проверку на наличие значения:

5-1801-5523da.png

По материалам https://metanit.com/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто
Черная пятница в Otus! ⚡️
Скидка 15% на все курсы до 27.11 →