DevPrep

Все темы › Язык Swift

Что такое type erasure и зачем он нужен?

Senior PRO

Суть

Type erasure — «стирание» конкретного типа за общим интерфейсом, чтобы работать с разными реализациями протокола как с одним типом: хранить их в одном массиве, свойстве, возвращать из функции, не раскрывая реализацию.

Исторически (до Swift 5.7) протокол с associatedtype или Self нельзя было использовать как тип вообще, и приходилось писать обёртки AnySequence, AnyPublisher, AnyView вручную. Сегодня в большинстве случаев это делает сам язык.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store