Binary 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) -> Point {
return Point(x: left.x + right.x, y: left.y + right.y)
}
//global function
func += (inout left: Point, right: Point) {
left = Point(x: left.x + right.x, y: left.y + right.y)
}
let p1 = Point(x: 1, y: 1)
let p2 = Point(x: 2, y: 2)
var p3 = p1 + p2
//p3.x is 3 and p3.y is 3
p3 += Point(x: 3, y: 5)
//p3.x is 6 and p3.y is 8
- Log in to post comments