I\'m trying to implement the == operator (from Equatable) in a base class and its subclasses in Swift 3. All of the classes will only be used in Sw
Following rmaddy's answer, I came up with a guard approach for testing equality:
static func ==(lhs: Base, rhs: Base) -> Bool {
// ensure class properties match
guard lhs.x == rhs.x else {
return false
}
return true
}
static func ==(lhs: Subclass, rhs: Subclass) -> Bool {
// ensure base class properties match
guard lhs as Base == rhs as Base else {
return false
}
// ensure class properties match
guard lhs.y == rhs.y else {
return false
}
return true
}
```