私がこれらのプロトコルを持っているとしましょう:
protocol SomeProtocol {
}
protocol SomeOtherProtocol {
}
ここで、ジェネリック型を取る関数が必要だが、その型が準拠している必要がある場合は、次のようにするSomeProtocol
ことができます。
func someFunc<T: SomeProtocol>(arg: T) {
// do stuff
}
しかし、複数のプロトコルに型制約を追加する方法はありますか?
func bothFunc<T: SomeProtocol | SomeOtherProtocol>(arg: T) {
}
同様のものはコンマを使用しますが、この場合、別の型の宣言を開始します。これが私が試したものです。
<T: SomeProtocol | SomeOtherProtocol>
<T: SomeProtocol , SomeOtherProtocol>
<T: SomeProtocol : SomeOtherProtocol>