Скажем, у меня есть эти протоколы:
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>