How about Polar(r: 0, phi: 0) ? It should all equal with any angles if r == 0.
2016-07-16 0:41 GMT+08:00 Johannes Neubauer via swift-evolution < [email protected]>: > > > Am 15.07.2016 um 18:29 schrieb Saagar Jha <[email protected]>: > > > > Here's a value type that uses custom equality (at least, I think so): > String. Since it uses extended grapheme clusters, internally two Strings > may be composed of different Unicode scalars, but if they create the same > Characters they are considered to be equal. > > Good point. But shouldn’t this be another type of equality then or do they > behave exactly the same and are just implemented differently? Because if > not, this seems to be introducing mixed-type comparisons like `5l == 5` or > `Point2D(0, 0) == Point3D(0, 0, 0) which are bad since they make it > impossible to guarantee reflexivity, symmetry, and transitivity. Swift does > a hard job to enforce this from the programmer. If this is really intended, > then there should be a fixed implementation for equality of value types, > which can be overridden, but which leads to a warning (which has to be > suppressed with some kind of annotation or so). Because, these custom > implementations can do harm. > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
