我有一个类型为元组 (Date, MyOwnClass) 的数组,并尝试从元组数组中找到等于我的目标元组的特定元组的索引。当我尝试使用“.indexOf({ $0 == targetTuple })”时,XCode 给我错误提示“二进制运算符 == 不能...”
提前致谢!
如果元组的所有元素也符合 Equatable 协议,则元组会自动符合 Equatable 协议,因此您只需要确保您的类实现 Equatable 协议:
class MyClass {
var name : String
init(_ _name : String) {
name = _name
}
}
extension MyClass: Equatable {
public static func ==(lhs: MyClass, rhs: MyClass) -> Bool {
return lhs.name == rhs.name
}
}
let ar : [(Int, MyClass)] = [
(1, MyClass("A")),
(2, MyClass("B")),
(1, MyClass("A"))
]
if let ix = ar.index(where:{$0 == (1, MyClass("A"))}) {
print(ix)
} else {
print("not found")
}
// 0 is printed