最佳答案
假设我有这些协议:
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>