SqueakByExample:3.3: Difference between revisions
Jump to navigation
Jump to search
Onionmixer (talk | contribs) (기호수정) |
Onionmixer (talk | contribs) (번역수정) |
||
Line 39: | Line 39: | ||
1 + (2 * 3) ⇒ 7 | 1 + (2 * 3) ⇒ 7 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
메시지 보내기는 구두점과 세미콜론으로 작성합니다. 구두점으로 구분한 구문 순차 배치는 ''선언문''과 같이 제각각의 구문을 순차적으로 처리하도록 합니다. | 메시지 보내기는 구두점과 세미콜론으로 작성합니다. 구두점으로 구분한 구문 순차 배치는 ''선언문''과 같이 제각각의 구문을 순차적으로 처리하도록 합니다. | ||
Line 47: | Line 49: | ||
Transcript cr | Transcript cr | ||
</syntaxhighlight> | </syntaxhighlight> | ||
이 코드는 cr을 Transcript 오브젝트에 보낸 후, show: 'hello world'에 보내고, 마지막으로 다른 cr을 보냅니다. | 이 코드는 cr을 Transcript 오브젝트에 보낸 후, show: 'hello world'에 보내고, 마지막으로 다른 cr을 보냅니다. | ||
Line 58: | Line 61: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
이것은 앞의 | 이것은 앞의 예제와 정확히 같은 결과를 냅니다. | ||
==Notes== | ==Notes== |
Revision as of 10:19, 21 February 2013
메시지 보내기
스퀵에는 3가지 종류의 메시지가 있습니다.
- 단항 메세지는 인자를 취하지 않습니다. 1 factorial은 메시지 factorial을 오브젝트 1에 보냅니다.
- 이항 메시지는 정확히 하나의 인자를 취합니다. 1+2는 인자 2와 함께 메시지 +를 오브젝트 1에 보냅니다.
- 키워드 메시지는 임시로 여러 개의 인자를 취합니다. 2 raisedTo:6 modulo: 10은 메시지 선택자 raisedTo:modulo:와 인자 6과 10으로 구성된 메시지를 오브젝트 2에 보냅니다.
단항 메시지 선택자는 알파벳-숫자 문자로 구성되어 있으며, 소문자로 시작합니다.
이항 메시지 선택자는 다음 집합의 하나 이상의 문자로 이루어져 있습니다:
+ - / \ * _ < > = @ % | & ? ,
키워드 메시지 선택자는 소문자로 시작하며 콜론으로 끝나는 알파벳 숫자 키워드의 모음으로 구성되어 있습니다.
단항 메시지는 가장 높은 우선순위를 가지고 있으며, 그 다음 이항 메시지고, 마지막이 키워드 메시지 입니다. 따라서:
2 raisedTo: 1 + 3 factorial ⇒ 128
(먼저 우리는 factorial을 3에 보내고, +6을 1로 보낸다음, raisedTo:7을 2에 보냅니다.) 앞서 배운, 기호 expression ⇒ result 를 수식 계산 결과를 보여주기 위해 사용한다는 것을 상기해 보십시오.
우선 순위에 따라, 처리는 엄격하게 왼쪽에서 오른쪽으로 진행합니다. 따라서
1 + 2 * 3 ⇒ 9
7이 아닙니다. 계산의 순서를 바꾸려면 괄호를 사용해야 합니다:
1 + (2 * 3) ⇒ 7
메시지 보내기는 구두점과 세미콜론으로 작성합니다. 구두점으로 구분한 구문 순차 배치는 선언문과 같이 제각각의 구문을 순차적으로 처리하도록 합니다.
Transcript cr.
Transcript show: 'hello world'.
Transcript cr
이 코드는 cr을 Transcript 오브젝트에 보낸 후, show: 'hello world'에 보내고, 마지막으로 다른 cr을 보냅니다.
여러가지 메시지를 동일한 수신자로 보내고 있을 때, 이 시리즈는 종속 구조와 같이 더욱 간결하게 표현할 수 있습니다. 수신자는 한 번 만 구체적으로 지정하며, 메시지 시퀀스는 세미콜론으로 구분합니다:
Transcript cr;
show: 'hello world';
cr
이것은 앞의 예제와 정확히 같은 결과를 냅니다.