Dolphin Smalltalk X6 に含まれているチュートリアルを通じて Smalltalk を学習しようとしています。
私の質問は、複数のメッセージを持つ式の評価を扱います。
私の理解では、単純なメッセージが最初に評価され、次にバイナリ メッセージが評価され、最後にキーワード メッセージが評価されます (括弧内のコードを除く)。ただし、この理解を次の例の 2 行目に適用するのに問題があります ( Dolphin Smalltalk チュートリアルにあります)。
playground := Playground new.
teresa := playground add: Triangle new. "Misunderstood code"
teresa class. "Evaluates to 'Triangle'"
私の理解が正しければ、2 行目は次のように評価されます。
1. Simple message 'new' sent to Triangle, triangle object as response
2. Binary message ':=' with parameter 'playground' sent to 'teresa'.
3. Keyword message 'add:' with parameter 'triangle object' sent to 'teresa'.
4. teresa class. "evaluates to 'Playground'".
私の誤解は、「teresa」が「playground」によって参照される Playground オブジェクトではなく、匿名の Triangle オブジェクトを参照するようになったことにあります。
:= または add: が成功しない特殊なケースであるという言及に対する Smalltalk 評価の 2 番目の説明を調べましたが、私が考えることができる唯一の他の説明は根本的な誤解です。
私をまっすぐにする助けはありますか?