2017-10-31 10 views
2

は、Lessphic Tutorial(6ページ)には、次のように書かれている:?例えば

aShape := ShapedView withShape: ([email protected] corner: [email protected]). 
aShape := ([email protected] corner: [email protected]) shapedView. 

「@」とは何を意味するのでしょうか? x座標とy座標のポイントですか?おそらくこの表記法はモチーフに由来しています。しかし、 "@記号"はGoogleには難しい。 Smalltalkの中でそれらのすべてがのセレクターある1等@+=、のようなシンボルの使用によって混同される可能性があるにもかかわらず

+2

はい、「ポイント」です。 Googleにはその必要はありません。ちょうどそれの実装、または '0 @表現 '0をデバッグするために見て、あなたのアイデアを得るでしょう。 –

+0

それはMorphicに起因しなかったが、うまく前に、それはSmalltalkの-80にはすでにでした。 –

+0

@Leandro Canigliaファンタジー!あなたは一行の答えを書くだろうか?だから私は答えられた質問を受け入れて閉じることができますか?どうも。 – mrsteve

答えて

3

、およびは(すなわち、コンパイラに知られている)を予約済みと考えます、定期的な方法。言い換えれば、彼らは(ほとんどの場合)期待される動作を実装することをトークンが、メッセージの有効なセレクタを予約されていません。 @の特定の場合には

私たちは実装を検索する場合、我々は通常

@ aNumber 
    ^Point x: self y: aNumber 

として実装Numberで1を、見つけます(ファロでは、しかし、物事をスピードアップするためのプリミティブがあり、あります

このメッセージの理由は、Pointの作成方法があまり冗長でないため、クライアントはPoint x: 200 y: 300ではなく、200 @ 300と書く必要があります。このパターンは、Smalltalkのではかなり一般的であるような方法によって

注意。 2/3(Fraction numerator: 2 denominator: 3) reducedと同等です:私たちは同じ種類のショートカットでメッセージ/を議論し、この[スモールトーク]タグ内のいくつかのいくつかの質問前に。その他の例としては、の場合は'hello world' readStreamNumber readFromString: '234.5'の場合は'234.5' asNumberなどです。