以下是我的代码
protocol P {}
class BaseClass {}
class AA: BaseClass, P {}
class BB: BaseClass {}
class CC: BaseClass, P {}
func test1<T>(value: T.Type...) where T: BaseClass & P {
}
这里我们有两个 BaseClass 的子类 AA 和 BB。
AA 和 CC 符合协议 P。BB 不符合协议 P。
如何使用函数只接受多个参数的 AA 和 CC,但拒绝 BB?
我尝试过这样做:
test(AA.self, BB.self)
这让我出现了编译时错误。有没有办法实现上述行为?
func test(_ value: (BaseClass & P).Type...) {
将此函数翻译为中文: - Leo Dabus