d j'ai une séquence de messages unaires?"
<code>
1000 factorial class name.
"Résultat: LargePositive... "
</code>
Là, j'ai écrit l'expression suivante ''1000 factorial class name''. Il se trouve que ça s'e... si j'avais mis toutes ces parenthèses:
<code>
(((1000 factorial) class) name)
</code>
Mais on voit q... * Là, je vais envoyer le message ''factorial'' à 1000;
* Après, je vais envoyer le message ''class'
|
^ Tableau | #(12 32 10) |
^ Entiers | 12 2r1100 |
^ Réels ... |
^ point | 10@120 |
Si o... de littéraux.
Là, j'ai un tableau avec 12, 32 et 10. J'ai un tableau à trois éléments.
Après, vous a
.
Transcript cr.
"Messages Binaires"
3 + 4.
5 -> 10.
" Messages à mots clés"
Transript show: 'Hello ... paire donc avec une clé et une valeur: donc 5 -> 10, ça crée la paire (5, 10);
* Et le troisième type de messages, ce sont les messages à mots-clés. Do... cle for"
4 timesRepeat: [self doSometing].
0 to: 100 do: [:i| ...].
" 2 0 à 100 par pas de 2 unités"
re le code suivant:
<code smalltalk>
A new bar
"> 10"
</code>
Ici aucune difficulté, même exemple que... méthode ''bar'' est exécutée et ''foo'' retourne 10.
<code smalltalk>
B new bar
"> 20"
</code>
Dans... i qui est dans la classe A. ''self foo'' retourne 10.
* ''super bar'' : ''super'' désigne également ... cette méthode-là qui est exécutée, elle retourne 10.
Au final la méthode ''B>>bar'' retournera 10 +
ffice de préambule à l'ensemble du MOOC.
* 🐥 [[010_classes_objets_methodes|Introduction aux classes,... émarrage et découverte de la syntaxe =====
*[[100_objectifs_du_mooc|🐥 Objectifs du MOOC]]
*[[105_pharo_systeme_objet_immersif|🐥 Pharo: un système objet immersif]]
*[[110_vision_pharo|🐥 La vision Pharo]]
*[[115_modele_
'est le message "to: do:"
<code smalltalk>
1 to: 100 do:
[ :i | Transcript show: i; space ]
</code>... tous les entiers qui ont été affichés entre 1 et 100.
Il existe d'autres messages pour effectuer des... 3 comme dans cet exemple.
<code smalltalk>
1 to: 100 by: 3 do:
[ :i | Transcript show: i; space ]
<... u de code, on voit bien que i a bien varié de 1 à 100, mais avec un incrément de 3 à chaque fois.
Il
it, on va avoir des messages particuliers.
<code>
10@20
</code>
Dans l'exemple ici, si j'envoie le message **@** à l'entier 10 et que je passe en paramètre l'entier 20, ça va m... e, l'entier qui a reçu le message, c'est l'entier 10, c'était celui qui était avant le nom du message,... er. Cette méthode-là, je vais lui passer l'entier 10, ça permet de créer une instance de la classe Tam
thode foo, il la trouve, il l'exécute, on obtient 10.
Pour une instance ''aB'' de la classe ''B'', on... de ''A'' ou de ''B'' les résultats obtenus valent 10 ou 50.
C'est important de prendre le temps de ré... r le message bar.
<code smalltalk>
A new bar.
"> 10"
B new bar.
"> 50"
</code>
Le message ''bar'' e... thode dans sa classe, on la trouve, on l'exécute, 10 est retourné.
L'autre cas est exactement le même
ière expression**.
<code smalltalk>
[ :x |
x + 10.
3 + 1 ] value: 20
"> 4"
</code>
Dans l'exe... le, le block prend comme paramètre une valeur x. 10 est ajouté à x. Le résultat de cette expression x plus 10 n'est pas utilisé, donc est effacé et à l'instruc
emande "Est-ce que 12 qui est un entier est entre 10 et 20?", c'est le message beetween: and: qui corr... ns ma syntaxe "Est-ce que 12 point beetween: and: 10, 20 ?" Je pense que je me suis assez alourdi dess
aBlock := [ :x | x + 2 ].
aBlock value:8
">>> 10"
</code>
Le block est défini, il est toujours ou... message "value: 8", on va bien avoir le résultat 10 puisque x vaudra 8 pendant l'évaluation de ce blo
voudrait que
<code smalltalk>
Counter withValue: 10
</code>
nous retourne un nouvel objet compteur qui commencerait à la valeur 10.
Avec l'implémentation proposée ci-dessous, on n
rray new: 4
Array new: 2
OrderedCollection new: 1000
</code>
Donc premier cas de figure, j'utilise ... pourrais faire un ''OrderedCollection'' de taille 1000.
On a d'autres types de méthodes pour créer de
with:do:''
<code smalltalk>
#( 1 2 3)
with: #( 10 20 30 )
do: [ :x :y | Transcript show: (y*x); c... éléments entre eux. On obtient dans le Transcript 10, 40 et 90. Et bien évidemment, il faut absolument