Скажімо, у мене є такі протоколи:
protocol SomeProtocol {
}
protocol SomeOtherProtocol {
}
Тепер, якщо я хочу функцію, яка приймає загальний тип, але цей тип повинен відповідати, SomeProtocol
я можу зробити:
func someFunc<T: SomeProtocol>(arg: T) {
// do stuff
}
Але чи є спосіб додати обмеження типу для декількох протоколів?
func bothFunc<T: SomeProtocol | SomeOtherProtocol>(arg: T) {
}
У подібних речах використовуються коми, але в цьому випадку воно розпочнеть декларацію іншого типу. Ось що я спробував.
<T: SomeProtocol | SomeOtherProtocol>
<T: SomeProtocol , SomeOtherProtocol>
<T: SomeProtocol : SomeOtherProtocol>