Swift: Type Casting (Приведение типа)

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

Чтобы узнать является ли экземпляр определенного типа существую оператор is

Будет выведено

А чтобы привести к определенному типа существует 2 оператора: as? и as!
Первый как не сложно догадаться вернет либо опционал этого типа либо Nil, а второй либо вернет правильный результат указанного типа либо выдаст ошибку.

При работе с Objective-C мы будем часто сталкиваться с двумя типами: AnyObject (экземпляр любого класса) и Any (экземпляр любого типа, включая тип функции)

Ожидаемо выдаст

Для проверки так же можно использовать switch, причем в нем для приведения нужно использовать просто as без восклицательного/вопросительного знаков (работает как версия as!)

Проверки могут быть очень мудрёными, я взял пример из книги практически без изменений чтобы не изобретать велосипед

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *