La première ligne permet de définir la méthode. Le nom de la méthode est model:. Cette méthode possède un paramètre dont le nom est aModel. On ne connaît pas le type du paramètre ni le type de retour de la méthode. La deuxième ligne affecte la valeur de l'argument aModel à la variable d'instance model. Cette méthode est donc tout simplement un setter.
onClassMoved: anAnnouncement
définition d'une nouvelle méthode dont le nom est onClassMoved: et qui prend un paramètre nommé anAnnouncement.
| class oldPackage |
déclaration de 2 nouvelles variables temporaires. En Smalltalk on doit déclarer toutes les variables que l'on utilise.
class := anAnnouncement theClass.
assignation à la variable temporaire class de la valeur résultante de l'envoie du message theClass (sans argument) à l'objet anAnnouncement.
oldPackage := anAnnouncement oldPackage.
même chose.
(oldPackage = self model selectedPackage or: [
class package = self model selectedPackage ])
expression qui retourne un booléen. L'expression est un OR entre 2 égalités.
ifFalse: [ ^ self ].
ifFalse: est un message envoyé au booléen (de la ligne précédente) qui prend un block en paramètre. Le block n'est évalué que si le booléen vaut false. L'accent circonflexe ^ signifie "return". Ici, on retourne l'objet courant (self = this en Java). C'est donc pareil que return this en Java. En Smalltalk, toutes les méthodes retournent un objet, et self est retourné par défaut. Donc, si la condition est fausse, on quitte la méthode.
La première ligne définie une condition. Si la condition est vraie, on envoie 2 messages à self (= this). Le premier message est selectedItem: avec un argument à nil (= null). Le deuxième message est selectItem: avec un argument à nil. Il faut noter l'utilisation du ; qui permet d'envoyer plusieurs messages à un même objet.
self setItemsForSelectedPackage.
self refresh
Ici on envoie 2 messages à self, aucun ne prenant d'argument. On aurait pu utiliser un ; ici aussi.
[^] # Re: semble sympa.
Posté par Damien Cassou . En réponse à la dépêche Sortie d'Amber 0.11.0. Évalué à 5.
La première ligne permet de définir la méthode. Le nom de la méthode est
model:. Cette méthode possède un paramètre dont le nom estaModel. On ne connaît pas le type du paramètre ni le type de retour de la méthode. La deuxième ligne affecte la valeur de l'argumentaModelà la variable d'instancemodel. Cette méthode est donc tout simplement un setter.définition d'une nouvelle méthode dont le nom est
onClassMoved:et qui prend un paramètre nomméanAnnouncement.déclaration de 2 nouvelles variables temporaires. En Smalltalk on doit déclarer toutes les variables que l'on utilise.
assignation à la variable temporaire
classde la valeur résultante de l'envoie du messagetheClass(sans argument) à l'objetanAnnouncement.même chose.
expression qui retourne un booléen. L'expression est un OR entre 2 égalités.
ifFalse:est un message envoyé au booléen (de la ligne précédente) qui prend un block en paramètre. Le block n'est évalué que si le booléen vautfalse. L'accent circonflexe^signifie "return". Ici, on retourne l'objet courant (self=thisen Java). C'est donc pareil quereturn thisen Java. En Smalltalk, toutes les méthodes retournent un objet, etselfest retourné par défaut. Donc, si la condition est fausse, on quitte la méthode.La première ligne définie une condition. Si la condition est vraie, on envoie 2 messages à
self(=this). Le premier message estselectedItem:avec un argument ànil(=null). Le deuxième message estselectItem:avec un argument ànil. Il faut noter l'utilisation du;qui permet d'envoyer plusieurs messages à un même objet.Ici on envoie 2 messages à
self, aucun ne prenant d'argument. On aurait pu utiliser un;ici aussi.