假设我有以下协议:
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>