🤔 В чём разница между as, as! и as?
Эти три оператора связаны с приведением типов:
- as используется для безопасного восходящего приведения, когда тип объекта гарантированно может быть приведён к указанному типу (например, суперклассу или протоколу).
- as! — это принудительное нисходящее приведение. Оно требует уверенности в типе объекта, иначе приложение упадёт при ошибке.
- as? — это безопасное нисходящее приведение, при котором результат будет опционалом. Если приведение невозможно, возвращается nil.
Таким образом:
- as — безопасно и для "поднятия" вверх по иерархии.
- as! — рискованно, используется только если уверен в типе.
- as? — гибко и безопасно, но требует работы с опционалом.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Эти три оператора связаны с приведением типов:
- as используется для безопасного восходящего приведения, когда тип объекта гарантированно может быть приведён к указанному типу (например, суперклассу или протоколу).
- as! — это принудительное нисходящее приведение. Оно требует уверенности в типе объекта, иначе приложение упадёт при ошибке.
- as? — это безопасное нисходящее приведение, при котором результат будет опционалом. Если приведение невозможно, возвращается nil.
Таким образом:
- as — безопасно и для "поднятия" вверх по иерархии.
- as! — рискованно, используется только если уверен в типе.
- as? — гибко и безопасно, но требует работы с опционалом.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний