【发布时间】:2015-05-05 01:36:55
【问题描述】:
是否可以在自定义类中为自定义类重载等价 (==) 运算符。但是我知道可以让这个运算符在类范围之外重载。欣赏任何示例代码。 提前致谢。
【问题讨论】:
-
在这种情况下可能会很有趣:stackoverflow.com/questions/28793218/….
标签: ios swift operator-overloading equivalence
是否可以在自定义类中为自定义类重载等价 (==) 运算符。但是我知道可以让这个运算符在类范围之外重载。欣赏任何示例代码。 提前致谢。
【问题讨论】:
标签: ios swift operator-overloading equivalence
添加全局函数。例如:
class CustomClass {
var id = "my id"
}
func ==(lhs: CustomClass, rhs: CustomClass) -> Bool {
return lhs == rhs
}
func !=(lhs: CustomClass, rhs: CustomClass) -> Bool {
return !(lhs == rhs)
}
class CustomClass: Equatable {
var id = "my id"
}
func ==(left: CustomClass, right: CustomClass) -> Bool {
return left.id == right.id
}
class CustomClass {
var id = "my id"
}
extension CustomClass: Equatable {
static func ==(lhs: CustomClass, rhs: CustomClass) -> Bool {
return lhs.id == rhs.id
}
}
【讨论】:
不,运算符是使用全局函数重载的。
【讨论】: