Egalité et identité en Smalltalk et Ruby

(Via Smalltalk Tidbits, Industry Rants) Ce billet présente les différences syntaxiques entre Smalltalk et Ruby en ce qui concerne l’égalité et l’identité d’objets. Ces notions ne sont pas forcemment facile à faire passer pour des étudiants qui débutent en programmation.

En Smalltalk, c’est relativement simple :

  • #== est l’identité entre objets. Cette méthode est définie dans la classe Object par une opération primitive et il ne faut pas redéfinir cete méthode dans une sous-classe. Elle permet de tester que l’on a le même objet de chaque côté de cette méthode unaire.
  • #= est l’égalité. Généralement, cela permet de tester si deux objets ont la même valeur ou pas. Il est possible de redéfinir cette méthode pour des besoins spécifiques.
  • #hash est une méthode qui retourne une valeur numérique qui doit toujours être la même pour des objets égaux. Cette méthode est utilisé par les collections notamment. Il ne faut pas oublier d’implémenter cette méthode chaque fois que l’on redéfinit la méthode #=.

Avec l’article, j’ai essayé de comprendre comment cela fonctionne en Ruby, mais je trouve que cela a l’air beaucoup plus complexe que nécessaire.

WordPress database error: [Table 'doesnotunderstand.wp_comments' doesn't exist]
SELECT * FROM wp_comments WHERE comment_post_ID = '149' AND comment_approved = '1' ORDER BY comment_date

Comments are closed.