NEWBIE Question: == vs =?

Bob Arning arning at
Wed Jan 24 20:19:15 UTC 2001

On Wed, 24 Jan 2001 12:04:13 -0800 "Phuong Bui" <pbui at> wrote:
>What exactly is the difference between the two boolean mesages: #== and #= ? 
>Can someone give an example where #== results in true but not #= ?
>(and vice versa?)

#== answers true if the receiver and argument are the same object.
#= answers true if they are the same object OR they are equivalent, the definition of equivalent being one that can vary from class to class.


| a b |
a _ 'hello, world'.
b _ a.
a == b. 	"<==== true"
a = b. 	"<==== true"
b _ a copy.
a == b.	"<====  false"
a = b.	"<====  true"

The above answers your vice-versa case. The case of #== being true and #= being false *could* happen if you defined a class where #= returned false when presented with the same object. Why you would want to do that, however, I can't imagine. So the short answer is

#== false and #= true happens a lot.
#== true and #= false probably never happens in real life.


More information about the Squeak-dev mailing list