logo       

Re: reimplementing #= and #hash: msg#00122

lang.smalltalk.squeak.beginners

Subject: Re: reimplementing #= and #hash

Hi Ching,

#= is test for equality while #== is test for identity. What do you probably want is to override #= to compare two PoolQueues if they are equal or not. But what "equal" means in your case is on you to define. Maybe something like this:

PoolQueue>>= anotherPoolQueue

^(self member = anotherPoolQueue member)
and: [self processor = anotherPoolQueue member]

But be sure that also member and processor instvars understand #= in a correct way. All numbers, strings, symbols etc. understand equality as expected.

I hope this helps a bit.
Janko


Ching de la Serna wrote:
Hi List,

I have a Class PoolQueue which has instvars 'member' and 'processor'. I find that an instance of PoolQueue when placed in an OrderedCollection can no longer be considered equal. I suppose I have to reimplement #= and #hash to allow PoolQueue instances to be compared.

My problem: how do I implement #hash? Or stated another way, what does #hash accomplish?

Thanks in advance.

Ching.


--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise