在Swift中为自定义类重载等价(==)运算符

是否可以为该自定义类中的自定义类重载等价(==)运算符。 但是我知道可以让这个运算符在类范围外重载。 感谢任何示例代码。 提前致谢。

添加全局function。 例如:

class CustomClass { var id = "my id" } func ==(lhs: CustomClass, rhs: CustomClass) -> Bool { return lhs == rhs } func !=(lhs: CustomClass, rhs: CustomClass) -> Bool { return !(lhs == rhs) } 

在Swift 2中使用Equatable协议

 class CustomClass: Equatable { var id = "my id" } func ==(left: CustomClass, right: CustomClass) -> Bool { return left.id == right.id } 

符合Swift 3中的Equatable协议

 class CustomClass { var id = "my id" } extension CustomClass: Equatable { static func ==(lhs: CustomClass, rhs: CustomClass) -> Bool { return lhs.id == rhs.id } } 

不,运算符使用全局函数重载。