[swift-users] Identity based object hash?

Philippe Hausler phausler at apple.com
Wed Oct 5 11:57:08 CDT 2016


ObjectIdentifier(self).hashValue is a decent approach; it hashes based upon the pointer address. That is how swift-corelibs-foundation does it for the swift implementation of NSObject: https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/NSObject.swift#L94

> On Oct 5, 2016, at 9:53 AM, Travis Griggs via swift-users <swift-users at swift.org> wrote:
> 
> I have a class that I’d rather not have based off of NSObject, but I do want to have identity based equality. I’ve done that as follows:
> 
> class Foobar { }
> 
> extension Foobar:Equatable { }
> 
> func == (a:Foobar, b:Foobar) -> Bool {
> 	return a === b
> }
> 
> What’s less clear to me is how to go about implementing an identity based hash
> 
> extension Foobar:Hashable {
> 	var hashValue:Int {
> 		// what magic should happen here?
> 	}
> }
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users



More information about the swift-users mailing list