我有以下协议和符合它的类:
protocol Foo{
typealias BazType
func bar(x:BazType) ->BazType
}
class Thing: Foo {
func bar(x: Int) -> Int {
return x.successor()
}
}
当我尝试创建一个foos数组时,我会遇到一个奇怪的错误:
var foos: Array<Foo> = [Thing()]
协议Foo只能用作泛型约束,因为它具有“Self”或关联类型的要求。
好的,所以它只能在有关联类型要求的情况下使用(它确实有),但出现了错误??真是令人糊涂!
我不确定编译器试图告诉我什么......