Ventury Networks’ Blog

“If it walks like a duck and quacks like a duck, I would call it a duck.”

Créer un objet à partir d’une chaine de caractère


La syntaxe de Smalltalk définit un bloc de la manière suivante :

bc := [ :a | a traitements. a.].

Ici, le bloc est paramétré. Lors de l’execution du bloc, le message “traitements” est envoyé au paramêtre. Le bloc renvoie la dernière valeur évalué. Ici, il s’agit explicitement de a.

Pour évaluer le bloc, je peux faire :

monObjet := MonObjet new.
bc value: monObjet.

Très bien. Admettons maintenant que je dispose de la chaine de caractère suivante :

' [ :a | a traitements. a.]'

Je souhaite en faire un bloc comme précédemment (en quelque sorte, compiler le code). Et bien, il suffit pour cela d’appeler la méthode readFromString: de Object :

bc := Object readFromString: '[ :a | a traitements. a.]'.
monObjet := MonObjet new.
bc value: monObjet.

Et voilà. Je vous invite à essayer la même chose avec les lignes suivantes (faites un “inspect” dessus pour voir ce que cela donne) :

Object readFromString: '34'.
Object readFromString: 'coucou'.
Object readFromString: '''coucou'''.
Object readFromString: 'a := String new.'.
Object readFromString: 'a := ''coucou''. b:= 5. '.

Note : dans une chaine de caractères, le caractère spécial ‘ (guillemet simple, ou “simple quote”), est échappé par son doublage. Ainsi, au sein d’une chaine de caractères entourées par des guillemets simples, ”  ( ‘ suivi de ‘, et non “) représente un guillemet simple (et non la terminaison de la chaine).

Tags :




Comments



1
Author:  dino | Date:  23 mars 2008 | Time:  15:52

Bon mais c’est pas tout çà !

çà va devenir très important la fedora 9 va bientôt sortir !
il faudrait tout de même qu’orange face ce qu’il faut hé ?

Bon alors à bientôt

Alain



Write a Comment

Note: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>