【发布时间】:2016-03-22 17:37:37
【问题描述】:
我正在尝试使用 Swift 2 构建一个简单的观察者 mixin。 这里只是相关部分。
protocol Observable{
typealias T
var observers:[T] { get set }
mutating func removeObserver(observer:T)
}
为了创建 mixin,我使用了一个扩展:
extension Observable{
mutating func removeObserver(observer:T){
let index = self.observers.indexOf{ $0 === observer }
if let _ = index{
self.observers.removeAtIndex(index)
}
}
}
这会产生编译器错误:Binary operator '===' cannot be applied to operands of type '_' and 'Self.T'
你能解释一下为什么会出现这个错误吗?
【问题讨论】:
标签: swift generics swift-extensions swift-protocols