Diciamo che ho questi protocolli:
protocol SomeProtocol {
}
protocol SomeOtherProtocol {
}
Ora, se voglio una funzione che accetta un tipo generico, ma a quel tipo deve essere conforme, SomeProtocol
potrei fare:
func someFunc<T: SomeProtocol>(arg: T) {
// do stuff
}
Ma c'è un modo per aggiungere un vincolo di tipo per più protocolli?
func bothFunc<T: SomeProtocol | SomeOtherProtocol>(arg: T) {
}
Cose simili usano le virgole, ma in questo caso, inizierebbe la dichiarazione di un tipo diverso. Ecco cosa ho provato.
<T: SomeProtocol | SomeOtherProtocol>
<T: SomeProtocol , SomeOtherProtocol>
<T: SomeProtocol : SomeOtherProtocol>