Previous: printOn:, printString Up: Ajouter des méthodes à une classe

= , == et ~=, ~~

Il y a deux tests d'égalité en Smalltalk. Le test d'égalité d'objet et le test d'égalité de structure.

==
teste si le receveur et le paramètre correspondent au même objet. Ce message ne doit jamais être surchargé.
=
teste si la structure des deux objets est identique ou non. Ce message peut être surchargé (redéfini) pour expliciter la notion d'égalité de deux instances.

Par exemple, (2@2) = (2@2) rend true tandis que (2@2) == (2@2) retourne false. Dans le premier cas, l'égalité entre Point est définie par l'égalité des coordonnées. Mais les deux points correspondent à deux instances distinctes de la classe Point. On peut, en effet, changer une coordonnée de l'un sans altérer l'autre.

Les messages ~= et ~~ correspondent respectivement à = not et == not.

beugnard@enst-bretagne.fr