Donc dans ce cours je vais vous parler de deux points,
qui sont la séquence et la cascade d'expression que vous
allez retrouver constamment en Pharo Donc l'idée, c'est
que vous allez pouvoir avoir, souvent, vous avez
plusieurs expressions qui se suivent et donc on va devoir
les séparer, donc on va les séparer avec un point.
Donc, c'est ce que je montre sur l'exemple.
Là vous avez Transcript cr.
avec un point, ça veut dire je veux ajouter sur le Transcript.
Le Transcript, c'est un petit outil pour faire du log,
donc je veux passer à la ligne, je veux montrer l'objet
1et je veux montrer l'objet 2, et vous voyez j'aurais pu
mettre un point ou pas.
Et donc, mes expressions sont séparées par des points.
Donc, on fait ce qu'il faut voir là, c'est un autre exemple.
Là j'ai défini mes deux variables locales, je définis une
Workstation, c'est un simulateur de réseaux, je mets un
point parce que c'est la fin de cette expression, et je
continue sur mon autre expression.
J'aurais pu mettre un point ici parce que c'est ce qui
est expliqué, c'est qu'un point c'est un séparateur, ce n'est
pas un terminateur. En Java, vous seriez forcés de mettre
un point-virgule ici et ici, mais en Pharo vous n'avez pas besoin.
Donc, ce qu'il faut voir aussi, pour les débutants,
parfois c'est un peu étrange, c'est que les barres
verticales sont des définitions de variables locales,
vous aurez un cours là-dessus aussi dans le futur, et il n'y a pas de point.
On ne met pas un point ici.
Donc, en général on met définition de variable locale et
on attaque, et après la première expression, on met un point.
Donc maintenant, il y a autre chose, c'est que souvent on
se trouve dans la situation suivante où on aimerait
envoyer plusieurs messages au même objet.
Et comme on est un peu feignant, on aimerait bien éviter
de répéter toujours le receveur de l'objet.
Donc, regardez le cas de figure.
J'ai Transcript cr.
, Transcript show:, Transcript, vous avez vu que déjà j'ai
dit trois fois Transcript, alors que j'aimerais le dire qu'une seule fois.
Je peux le faire, je vais utiliser ce qu'on appelle une
cascade, c'est le point-virgule. Donc, là je vais faire Transcript cr.
, j'envoie un message cr à l'objet Transcript, et la
cascade dit "À partir de maintenant tous les messages
sont envoyés au même receveur que le premier".
Donc ça veut dire que show: 1 va être envoyé à
Transcript, que show: 2 va être envoyé à Transcript.
D'accord? Donc je répète un petit coup parce que c'est
un point particulier. J'envoie le premier message cr normalement.
Et à partir de cr, je dis "au lieu de mettre point, qui
est un séparateur, je vais mettre un point-virgule", je
vais dire "tous les autres messages, tu les envoies au même receveur".
Donc show: 1 va être envoyé au même receveur, le
point-virgule dit "show: 2 va être envoyé au même receveur que moi".
Voilà.
Donc, un autre exemple.
Imaginons, souvent on veut créer une collection, donc on
dit "moi, j'ai une collection donc je définis une variable c.
Dans la variable c, je mets ma collection, vous voyez le point ici.
Je mets 1 dans la collection, je mets 2 dans la collection".
Cette expression est strictement équivalente à celle-là.
Ça veut dire que là, je vais faire OrderedCollection new,
je la crée et j'envoie le premier message add:1 pour
ajouter un élément et je mets point-virgule, ça veut dire
je veux envoyer ce message-là à cette collection.
Donc, moi ce que je vous suggère quand vous abordez Pharo
c'est: ne vous prenez pas la tête à utiliser la cascade.
Par contre, pourquoi on vous l'a présentée?
C'est que vous allez lire du code et que dans le code les gens l'utilisent.
Et une fois que vous aurez compris que vous êtes à l'aise
avec cette syntaxe-là, avec les points, vous pouvez vous
dire "bon, là, je peux commencer à être un peu plus agile
et je vais utiliser la cascade".
En général, c'est comme ça que moi j'ai appris, c'est
tranquillement de passer les étapes une par une.
Donc voilà, donc qu'est-ce qu'on a vu?
On a vu qu’on a le point qui est un séparateur qui est l'équivalent
du point-virgule en Java.
On a le point-virgule qui est une casquette qui évite de
répéter plusieurs fois le même receveur.
Et la cascade rend la valeur du dernier message envoyé.