`Point`’s current conformance to `Comparable` yields some confusing results.

let c = Point(x: 3, y: 4) let d = Point(x: 2, y: 5) let cGreaterThanD = (c > d) // false let cLessThanD = (c < d) // false let cEqualToD = (c == d) // false

As the above example demonstrates, the trouble arises in comparing two points when one point’s `x` and `y` properties are not both larger than the other point’s.
In actuality, it is not reasonable to compare two points in this manner.

Fix this problem by changing `Point`’s conformance to `Comparable`.
Calculate each point’s Euclidean distance from the origin instead of comparing `x` and `y` values.
This implementation should return `true`

for `a < b`

when `a` is closer to the origin than `b`.

Use the ...

Start Free Trial

No credit card required