为什么不能为协议所继承的协议的关联类型指定具体类型的协议不能用作函数的参数类型?
示例:
protocol ProtoA {
associatedtype Item
var arr: [Item] { get set }
}
protocol ProtoB: ProtoA where Item == String { }
final class MyClass {
func myFunc(p: ProtoB) { }
}
我得到了错误:
协议“ ProtoB”只能用作通用约束 因为它具有“自我”或相关类型要求
编译器知道实现ProtoB的结构或类具有类型为[String]的属性“ arr”,为什么我会看到此错误?