[swift-users] Equality is broken, isn't it?

Jeff Kelley slaunchaman at gmail.com
Wed Jul 6 11:57:16 CDT 2016


I wouldn’t expect String and NSString to have identical implementations of hashValue(). Is there a problem you’re having that this example is meant to illustrate? I can see this being an issue if you’re building your own collection type for strings.


Jeff Kelley

SlaunchaMan at gmail.com | @SlaunchaMan <https://twitter.com/SlaunchaMan> | jeffkelley.org <http://jeffkelley.org/>
> On Jul 6, 2016, at 12:54 PM, Alexey Komnin via swift-users <swift-users at swift.org> wrote:
> 
> Here is the code:
> 
>    let a: String = "abc"
>    let b: NSString = "abc"
> 
>    assert(a == b)
>    assert(a.hashValue == b.hashValue, "a.hashValue(\(a.hashValue)) !=
> b.hashValue(\(b.hashValue))")
> 
> It fails with error:
>    assertion failed: a.hashValue(4799450059707601744) != b.hashValue(516202353)
> 
> Perhaps, there is an issue with the equality operator.
> 
> Alexey Komnin.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160706/e56d2674/attachment.html>


More information about the swift-users mailing list