Disons que j'ai ces protocoles:
protocol SomeProtocol {
}
protocol SomeOtherProtocol {
}
Maintenant, si je veux une fonction qui prend un type générique, mais que ce type doit être conforme, SomeProtocol
je pourrais faire:
func someFunc<T: SomeProtocol>(arg: T) {
// do stuff
}
Mais existe-t-il un moyen d'ajouter une contrainte de type pour plusieurs protocoles?
func bothFunc<T: SomeProtocol | SomeOtherProtocol>(arg: T) {
}
Des choses similaires utilisent des virgules, mais dans ce cas, cela commencerait la déclaration d'un type différent. Voici ce que j'ai essayé.
<T: SomeProtocol | SomeOtherProtocol>
<T: SomeProtocol , SomeOtherProtocol>
<T: SomeProtocol : SomeOtherProtocol>