SqueakByExample:3.3

From 흡혈양파의 번역工房
Revision as of 06:26, 22 August 2012 by Onionmixer (talk | contribs) (스타일 수정)
Jump to navigation Jump to search

메시지 보내기

스퀵에는 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