[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