Digamos que tengo estos protocolos:
protocol SomeProtocol {
}
protocol SomeOtherProtocol {
}
Ahora, si quiero una función que tome un tipo genérico, pero ese tipo debe cumplir SomeProtocol
, podría hacer:
func someFunc<T: SomeProtocol>(arg: T) {
// do stuff
}
Pero, ¿hay alguna manera de agregar una restricción de tipo para múltiples protocolos?
func bothFunc<T: SomeProtocol | SomeOtherProtocol>(arg: T) {
}
Cosas similares usan comas, pero en este caso, comenzaría la declaración de un tipo diferente. Esto es lo que he intentado.
<T: SomeProtocol | SomeOtherProtocol>
<T: SomeProtocol , SomeOtherProtocol>
<T: SomeProtocol : SomeOtherProtocol>