[Squeak-fr] Egalité de chaîne
Damien Cassou
damien.cassou at laposte.net
Ven 3 Sep 16:19:04 CEST 2004
Bonjour,
voici ce que l'on peut lire dans le livre "Squeak programmation" de
Xavier Briffault et de Stéphane Ducasse :
Chapitre 5 -> Notations littérales pour la définition de données ->
Caractères et chaînes de caractères (page 88)
"'Je ne suis pas unique' == 'Je ne suis pas unique' rend false."
Or, le test depuis Squeak rend true. Alors que si on stocke d'abord la
chaîne dans une variable puis qu'on teste l'égalité avec une constante
chaîne, ça renvoie false :
'je ne suis pas unique'=='je ne suis pas unique'. true
toto := 'je ne suis pas unique'.
toto == 'je ne suis pas unique'. false
Je pense que le deuxième résultat est tout à fait logique. On construit
d'abord l'objet toto, puis un objet chaîne de caractère et on teste les
deux pointeurs. Il est normal qu'ils soient différents.
Par contre, le résultat du premier test qui renvoie true me paraît un
peu bizarre. J'aurai pensé que Squeak créait 2 chaînes de caractères
différentes (avec le même contenu mais à 2 emplacements distincts) et
donc que le test de pointeur devrait retourner false. Or, contrairement
à ce que dit le livre, ce test renvoie true.
Est-ce que quelqu'un peut m'expliquer ? Est-ce un bug de Squeak ou du
livre ?
Damien
Plus d'informations sur la liste de diffusion Squeak-fr