SqueakByExample:3.3: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SBE 메세지보내기 페이지 추가)
 
(스타일 수정)
Line 3: Line 3:
스퀵에는 3가지 종류의 메시지가 있습니다.
스퀵에는 3가지 종류의 메시지가 있습니다.


# 단항 메시지(Unary messages)는 인수를 취하지 않습니다. 1 factorial은 메시지 factorial을 오브젝트 1에 보냅니다.
# ''Unary'' messages(단항메세지)는 인수를 취하지 않습니다. 1 factorial은 메시지 factorial을 오브젝트 1에 보냅니다.
# 바이너리 메시지(Binary messages)는 정확히 하나의 인수를 취합니다. 1+2는 인수 2와 함께 메시지 +를 오브젝트 1에 보냅니다.
# ''Binary'' messages(이진메세지)는 정확히 하나의 인수를 취합니다. 1+2는 인수 2와 함께 메시지 +를 오브젝트 1에 보냅니다.
# 키워드 메시지는 임시 인수 숫자를 취합니다. 2 raisedTo:6 modulo: 10은 메시지 선택자(the message selector) raisedTo:modulo:와 인수 6과 10으로 구성된 메시지를 오브젝트 2에 보냅니다.  
# ''Keyword'' messages(키워드메세지)는 임시 인수 숫자를 취합니다. '''2 raisedTo:6 modulo: 10 '''은 메시지 선택자(the message selector) raisedTo:modulo:와 인수 6과 10으로 구성된 메시지를 오브젝트 2에 보냅니다.  


단항 메시지 선택자(Unary message selectors)는 알파벳 문자로 구성되어 있으며, 소문자로 시작합니다.
단항 메시지 선택자(Unary message selectors)는 알파벳 문자로 구성되어 있으며, 소문자로 시작합니다.


바이너리메시지선택자(Binary message selectors)는 다음 세트의 하나 또는 그 이상의 문자로 구성되어 있습니다:
이진메시지선택자(Binary message selectors)는 다음 세트의 하나 또는 그 이상의 문자로 구성되어 있습니다:


<syntaxhighlight lang="smalltalk">
<syntaxhighlight lang="smalltalk">
+ -- / \ * _ < > = @ % | & ? ,
+ - / \ * _ < > = @ % | & ? ,
</syntaxhighlight>
</syntaxhighlight>


키워드 메시지선택자(Keyword messageselectors)는 각 키워드가 소문자로 시작되며 콜론으로 끝나는 알파벳 키워드의 시리즈로 구성됩니다.
키워드 메시지선택자(Keyword messageselectors)는 각 키워드가 소문자로 시작되며 콜론으로 끝나는 알파벳 키워드의 시리즈로 구성됩니다.
단항 메시지는 가장 높은 우선권을 갖고 있으며, 그 다음 바이너리 메시지들이며, 마지막으로 키워드 메시지 순으로 우선권을 갖고 있으므로:
 
단항 메시지는 가장 높은 우선권을 갖고 있으며, 그 다음 이진 메시지들이며, 마지막으로 키워드 메시지 순으로 우선권을 갖고 있으므로:


<syntaxhighlight lang="smalltalk">
<syntaxhighlight lang="smalltalk">
2 raisedTo: 1 + 3 factorial 128
2 raisedTo: 1 + 3 factorial 128
</syntaxhighlight>
</syntaxhighlight>


(먼저 우리는 factorial을 3에 보내고, +6을 1로 보낸다음, raisedTo:7을 2에 보냅니다.) 먼저 배운, 기호 expression → result 를 표현식 평가의 결과를 보여주기 위해 사용한다는 것을 상기해 봅니다.   
(먼저 우리는 factorial을 3에 보내고, +6을 1로 보낸다음, raisedTo:7을 2에 보냅니다.) 먼저 배운, 기호 expression → result 를 표현식 평가의 결과를 보여주기 위해 사용한다는 것을 상기해 봅니다.   


우선권 외에는, 평가는 왼쪽에서 엄격히 오른쪽으로 기록됩니다. 그러므로 아래처럼 됩니다.
우선권 외에는, 평가는 왼쪽에서 엄격히 오른쪽으로 기록됩니다. 그러므로 아래처럼 됩니다.


<syntaxhighlight lang="smalltalk">
<syntaxhighlight lang="smalltalk">
1 + 2 * 3 9
1 + 2 * 3 9
</syntaxhighlight>
</syntaxhighlight>


Line 36: Line 34:


<syntaxhighlight lang="smalltalk">
<syntaxhighlight lang="smalltalk">
1 + (2 * 3) 7
1 + (2 * 3) 7
</syntaxhighlight>
</syntaxhighlight>


Line 47: Line 45:
</syntaxhighlight>
</syntaxhighlight>


이것은 cr을 Transcript 오브젝트에 보내고, show: 'hello world'에 보낸다음, 마지막으로 다른 cr에 보낼 것입니다.  
이것은 cr을 Transcript 오브젝트에 보내고, show: 'hello world'에 보낸다음, 마지막으로 다른 cr에 보낼 것입니다.
 
메시지의 시리즈가 동일한 수신자에게 보내지고 있을 때, 이 시리즈는 케스케이드로서 좀더 간결하게 표현될 수 있습니다. 수신자는 단지 한번 구체적으로 지정되며, 메시지의 시퀀스는 세미콜론으로 분리됩니다:
메시지의 시리즈가 동일한 수신자에게 보내지고 있을 때, 이 시리즈는 케스케이드로서 좀더 간결하게 표현될 수 있습니다. 수신자는 단지 한번 구체적으로 지정되며, 메시지의 시퀀스는 세미콜론으로 분리됩니다:



Revision as of 06:26, 22 August 2012

메시지 보내기

스퀵에는 3가지 종류의 메시지가 있습니다.

  1. Unary messages(단항메세지)는 인수를 취하지 않습니다. 1 factorial은 메시지 factorial을 오브젝트 1에 보냅니다.
  2. Binary messages(이진메세지)는 정확히 하나의 인수를 취합니다. 1+2는 인수 2와 함께 메시지 +를 오브젝트 1에 보냅니다.
  3. Keyword messages(키워드메세지)는 임시 인수 숫자를 취합니다. 2 raisedTo:6 modulo: 10 은 메시지 선택자(the message selector) raisedTo:modulo:와 인수 6과 10으로 구성된 메시지를 오브젝트 2에 보냅니다.

단항 메시지 선택자(Unary message selectors)는 알파벳 문자로 구성되어 있으며, 소문자로 시작합니다.

이진메시지선택자(Binary message selectors)는 다음 세트의 하나 또는 그 이상의 문자로 구성되어 있습니다:

+ - / \ * _ < > = @ % | & ? ,

키워드 메시지선택자(Keyword messageselectors)는 각 키워드가 소문자로 시작되며 콜론으로 끝나는 알파벳 키워드의 시리즈로 구성됩니다.

단항 메시지는 가장 높은 우선권을 갖고 있으며, 그 다음 이진 메시지들이며, 마지막으로 키워드 메시지 순으로 우선권을 갖고 있으므로:

2 raisedTo: 1 + 3 factorial  128

(먼저 우리는 factorial을 3에 보내고, +6을 1로 보낸다음, raisedTo:7을 2에 보냅니다.) 먼저 배운, 기호 expression → result 를 표현식 평가의 결과를 보여주기 위해 사용한다는 것을 상기해 봅니다.

우선권 외에는, 평가는 왼쪽에서 엄격히 오른쪽으로 기록됩니다. 그러므로 아래처럼 됩니다.

1 + 2 * 3  9

7이 아닙니다. 괄호는 평가의 순서를 대체하기 위해 사용되어야 합니다:

1 + (2 * 3)  7

메시지 보내기는 구두점과 세미콜론으로 구성될 수 있습니다. 표현식의 기간 구별 시퀀스는 시리즈에서, 스테이트먼트(문장, statement)로서 교대로 각 표현식이 평가 되는 원인을 제공합니다

Transcript cr.
Transcript show: 'hello world'.
Transcript cr

이것은 cr을 Transcript 오브젝트에 보내고, show: 'hello world'에 보낸다음, 마지막으로 다른 cr에 보낼 것입니다.

메시지의 시리즈가 동일한 수신자에게 보내지고 있을 때, 이 시리즈는 케스케이드로서 좀더 간결하게 표현될 수 있습니다. 수신자는 단지 한번 구체적으로 지정되며, 메시지의 시퀀스는 세미콜론으로 분리됩니다:

Transcript cr;
  show: 'hello world';
  cr

이것은 앞전의 예와 정확히 동일한 효과를 갖습니다.

Notes