Equivalence operators overloading in Swift
Forums:
class Point {
var x: Int
var y: Int
init(x: Int, y: Int) {
self.x = x
self.y = y
}
}
//global function
func == (left: Point, right: Point) -> Bool {
return (left.x == right.x) && (left.y == right.y)
}
//global function
func != (left: Point, right: Point) -> Bool {
return (left.x != right.x) || (left.y != right.y)
}
let p1 = Point(x: 1, y: 1)
let p2 = Point(x: 2, y: 2)
let p3 = Point(x: 1, y: 1)
let equal1 = p1 == p2
//equal1 is false
let equal2 = p1 == p3
//equal2 is true
let equal3 = p1 != p3
//equal3 is false
- Log in to post comments