Ces exercices sont principalement pour vous apprendre à lire et à comprendre les expressions Pharo ainsi qu'à identifier les différentes sortes de messages et receveurs.
Notez que dans les expressions pour lesquels on vous demande de les lire et les exécutez, vous pouvez assumer que l'implantation
des méthodes correspond généralement à ce que le nom du message implique (par exemple, 2 + 2 = 4
).
De plus, la plupart des expression que nous utilisons sont des expressions que vous pouvez exécuter dans Pharo donc n'hésitez pas.
A quelles sortes d'objets les expressions litérales font elles référence ?
'Hello, Dave'
Solution.
a string
1.3
Solution.
a float
#node1
Solution.
a symbol (unique string)
#(2 33 4)
Solution.
an array
[ :each | each scale: 1.5 ]
Solution.
a block (lexical closure)
$A
Solution.
a character
true
Solution.
a boolean
1
Solution.
a smallinteger
Pour chacune des expressions ci-dessous, répondez aux questions suivantes :
3 + 4
Solution.
receiver: 3
selector: +
argument: 4
Date today
Solution.
receiver: Date
selector: today
argument: none
anArray at: 1 put: 'hello'
Solution.
receiver: anArray
selector: at:put:
argument: 1 and 'hello'
anArray at: i
Solution.
receiver: anArray
selector: at:
argument: i
#(2 33 -4 67) collect: [ :each | each abs ]
Solution.
receiver: #(2 33 -4 67)
selector: collect:
argument: [ :each | each abs ]
25 @ 50
Solution.
receiver: 25
selector: @
argument: 50
SmallInteger maxVal
Solution.
receiver: SmallInteger
selector: maxVal
argument: none
#(a b c d e f) includesAll: #(f d b)
Solution.
receiver: #(a b c d e f)
selector: includesAll:
argument: #(f d b)
true | false
Solution.
receiver: true
selector: |
argument: false
Point selectors
Solution.
receiver: Point
selector: selectors
argument:
Transferator
?
Solution.
Transferator
est une variable globale : soit une classe, une variable globale ou une variable de classe.
rectangle
?
Solution.
rectangle
est une variable locale : soit une variable temporaire, une variable d'instance, un argument de méthode.