【发布时间】:2014-11-11 13:13:39
【问题描述】:
我有以下协议和一个符合它的类:
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()]
Protocol Foo 只能用作通用约束,因为它具有 自身或关联的类型要求。
好的,所以它只能在它有关联的类型要求时使用(它确实如此),但由于某种原因这是一个错误? WTF?!
我不确定我是否完全理解编译器试图告诉我的内容...
【问题讨论】:
标签: swift protocols associated-types