[Newbies] Collection>>Includes:...

David T. Lewis lewis at mail.msen.com
Sat Aug 5 13:07:21 UTC 2006


On Fri, Aug 04, 2006 at 08:22:40PM +0200, florent trolat wrote:
> Hi,
> 
> I've define an '=' message for an oject and I want to use this object in 
> a Collection.
> 
> I've seen that 'incudes:' message use '=' or not '==' and it's not fun 
> for me!
> 
> I think that '=' message is to compare two objects and  '==' to know if  
> the two object are one!
> 
> So for me 'includes:' must use '==' or not '='...
> 
> May be I have not understand something...

Many kinds of collections use '=' for comparison, but there are
also collections that do exactly what you want. For example, an
IdentityDictionary is a Dictionary that uses '==' for comparison.
Look for classes with "Identity" in their names to see them all.

FYI, just as a matter of convention, it is common to refer to
the method 'includes:' as #includes, or as '==' as #==. This
convention comes about because within Smalltalk, a method selector
is a symbol such as #includes:, and this is the way folks usually
refer to them in email.

I'll also mention that if you implement the #= method, you
probably also will want to implement #hash. See the comment in
the #= method of class object (which, by the way, would usually
be written as Object>>= or Object>>hash in an email). Look at
implementors of #hash for examples of what to do.

Dave



More information about the Beginners mailing list