Unary 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
prefix func ++ (inout p: Point) -> Point {
p = Point(x: p.x + 1, y: p.y + 1)
return p
}
//global function
postfix func ++ (inout p: Point) -> Point {
p = Point(x: p.x + 1, y: p.y + 1)
return p
}
//global function
prefix func - (inout p: Point) -> Point {
p = Point(x: -p.x, y: -p.y)
return p
}
var p = Point(x: 1, y: 1)
p++
//p.x is 2, p.y is 2
++p
//p.x is 3, p.y is 3
p = -p
//p.x is -3, p.y is -3
-p
//p.x is 3, p.y is 3
- Log in to post comments