SqueakByExample:4.6: Difference between revisions
Jump to navigation
Jump to search
Onionmixer (talk | contribs) (스타일 수정) |
Onionmixer (talk | contribs) (번역수정 및 주석추가) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==캐스케이드된 메시지 | ==캐스케이드된 메시지== | ||
스몰토크는 세미콜론 (;)을 사용하여 동일한 | 스몰토크는 세미콜론 (;)을 사용하여 동일한 수신자에게 여러개의 메시지를 보낼 수 있는 방법이 있습니다. 이것을 스몰토크 용어로 캐스케이드라고 합니다. | ||
Line 11: | Line 11: | ||
| | | | ||
<syntaxhighlight lang="smalltalk"> | <syntaxhighlight lang="smalltalk"> | ||
Transcript show: 'Squeak | Transcript show: 'Squeak is '. | ||
Transcript show: 'fun '. | Transcript show: 'fun '. | ||
Transcript cr. | Transcript cr. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| | |은 다음과 같습니다 | ||
| | | | ||
<syntaxhighlight lang="smalltalk"> | <syntaxhighlight lang="smalltalk"> | ||
Line 26: | Line 25: | ||
|} | |} | ||
캐스케이드된 메시지를 받는 오브젝트는 오브젝트 뿐만이 아니라 그 자신이 보내는 메세지의 결과 자체가 될 수도 있습니다. 결국 모든 캐스케이드된 메세지의 수신자는 캐스케이드에 걸려있는 요소들중 첫번째 메세지를 수신하는 오브젝트(또는 인스턴스)가 됩니다. 다음 예제에서 첫째로 캐스케이드된 메세지인 setX:setY<ref name="역자주1">Point new 자체를 인스턴스를 만들기 위한 하나의 단위로 본다면 setX:setY는 첫번때 캐스케이드 메시지기 맞습니다.</ref>는 Point new의 처리결과로 만들어진 Point이며 Point 자체가 대상이 되는건 아닙니다. 그 다음 메세지 isZero는 동일한 수신자에게 전달되는것을 볼 수 있습니다. | |||
<syntaxhighlight lang="smalltalk"> | <syntaxhighlight lang="smalltalk"> | ||
Point new setX: 25 setY: 35; isZero ⇒ false | Point new setX: 25 setY: 35; isZero ⇒ false | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Notes== | ==Notes== |
Revision as of 13:36, 4 March 2013
캐스케이드된 메시지
스몰토크는 세미콜론 (;)을 사용하여 동일한 수신자에게 여러개의 메시지를 보낼 수 있는 방법이 있습니다. 이것을 스몰토크 용어로 캐스케이드라고 합니다.
표현식 Msg1 ; Msg2
Transcript show: 'Squeak is '.
Transcript show: 'fun '.
Transcript cr.
|
은 다음과 같습니다 |
Transcript
show: 'Squeak is';
show: 'fun ';
cr
|
캐스케이드된 메시지를 받는 오브젝트는 오브젝트 뿐만이 아니라 그 자신이 보내는 메세지의 결과 자체가 될 수도 있습니다. 결국 모든 캐스케이드된 메세지의 수신자는 캐스케이드에 걸려있는 요소들중 첫번째 메세지를 수신하는 오브젝트(또는 인스턴스)가 됩니다. 다음 예제에서 첫째로 캐스케이드된 메세지인 setX:setY[1]는 Point new의 처리결과로 만들어진 Point이며 Point 자체가 대상이 되는건 아닙니다. 그 다음 메세지 isZero는 동일한 수신자에게 전달되는것을 볼 수 있습니다.
Point new setX: 25 setY: 35; isZero ⇒ false
Notes
- ↑ Point new 자체를 인스턴스를 만들기 위한 하나의 단위로 본다면 setX:setY는 첫번때 캐스케이드 메시지기 맞습니다.