Условное соответствие позволяет обобщённому типу соответствовать протоколу только когда его параметры типа удовлетворяют определённым ограничениям.
extension Array: Equatable where Element: Equatable {}
Здесь Array соответствует Equatable только если его тип Element также соответствует Equatable.
[Int] получает оператор == потому что Int реализует Equatable[UIViewController] не получает == потому что UIViewController не реализует EquatableУсловное соответствие сохраняет API типобезопасным и выразительным, позволяя обобщённым типам участвовать в протоколах осмысленно — без принудительного соответствия там, где оно логически неприменимо.
Условная конформность позволяет универсальному типу соответствовать протоколу только когда его параметры типа удовлетворяют определённым ограничениям, предотвращая недействительные конформности для несовместимых комбинаций типов.
Новый — ещё не проверен сообществом
Вы