我試圖創建一個擴展,但不知它口口聲聲說:變異擴展陣列
曖昧參考成員「==」。
class Foo: Equatable {
var string = ""
var number = 0
init(string: String, number: Int) {
self.string = string
self.number = number
}
}
extension Array where Iterator.Element: Foo {
mutating func replace(object: Foo) {
if let index = index(where: { $0.number == object.number}) {
self[index] = object
}
}
}
func ==(lhs: Foo, rhs: Foo) -> Bool {
return lhs.number == rhs.number
}
我在做什麼錯?
符不符合'Equatable'(並測試上面的代碼,我從你的
Foo
,當你在擴展使用index(where:)
這是無關緊要的。除去: Equatable
)。它需要'=='的定義 – Alexander對不起,我確實擁有它,但我只是沒有在示例中顯示。 –