Angenommen, ich habe diese Protokolle:
protocol SomeProtocol {
}
protocol SomeOtherProtocol {
}
Wenn ich nun eine Funktion möchte, die einen generischen Typ annimmt, aber diesem Typ entsprechen muss, kann SomeProtocol
ich Folgendes tun:
func someFunc<T: SomeProtocol>(arg: T) {
// do stuff
}
Aber gibt es eine Möglichkeit, eine Typbeschränkung für mehrere Protokolle hinzuzufügen?
func bothFunc<T: SomeProtocol | SomeOtherProtocol>(arg: T) {
}
Ähnliche Dinge verwenden Kommas, aber in diesem Fall würde die Deklaration eines anderen Typs gestartet. Folgendes habe ich versucht.
<T: SomeProtocol | SomeOtherProtocol>
<T: SomeProtocol , SomeOtherProtocol>
<T: SomeProtocol : SomeOtherProtocol>