Digamos que eu tenho estes protocolos:
protocol SomeProtocol {
}
protocol SomeOtherProtocol {
}
Agora, se eu quiser uma função que aceite um tipo genérico, mas esse tipo deva estar em conformidade, SomeProtocol
eu poderia fazer:
func someFunc<T: SomeProtocol>(arg: T) {
// do stuff
}
Mas existe uma maneira de adicionar uma restrição de tipo para vários protocolos?
func bothFunc<T: SomeProtocol | SomeOtherProtocol>(arg: T) {
}
Coisas semelhantes usam vírgulas, mas, neste caso, iniciariam a declaração de um tipo diferente. Aqui está o que eu tentei.
<T: SomeProtocol | SomeOtherProtocol>
<T: SomeProtocol , SomeOtherProtocol>
<T: SomeProtocol : SomeOtherProtocol>