SqueakByExample:4.2

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

세 종류의 메시지

스몰토크는 메시지가 전송되는 순서를 결정하기 위해 메시지를 몇가지 간단한 규칙으로 정의합니다. 이러한 규칙들은 세 종류의 메시지구분에 대한 차이를 기반으로 합니다:

  • 단항 메시지는 어떤 정보도 갖고 있지 않은 객체에게 발송한 메시지입니다. 예를 들어 3 factorial에서, factorial은 단항 메시지 입니다.
  • 이항 메시지는 연산자들(종종 산술적)로 구성되어 있습니다. 그 연산자들은 이항(양쪽에 인자가 필요한)이며, 그 이유는 이항메세지는 항상 두 개의 객체, 그리고 수신자와 인자 객체등에 관여하기 때문입니다. 예를 들면, 10 + 20 에서 +는 인자 20과 함께 수신자 10에 발송된 이항 메시지 입니다.
  • 키워드 메시지는 한 각각 콜론(:)으로 끝나며 한 개의 인자를 받는 한 개 또는 그 이상의 키워드로 구성됩니다. 예를 들면, anArray at: 1 put: 10 에서, 키워드 at:은 인자 1을 취하며, 키워드 put:은 인자 10을 취합니다.


단항 메시지

단항 메시지는 어떤 인자도 요구하지 않는 메시지 입니다. 단항 메시지는 receiver messageName 의 문법구조를 따릅니다. 이런경우에 셀렉터는 그 뒤에 문자(인자)가 이어지지 않게 만들어져 있습니다. (예를 들면, 계승(factorial), 열기(open), 클래스(class)등)

89 sin ⇒ 0.860069405812453
3 sqrt ⇒ 1.732050807568877
Float pi ⇒ 3.141592653589793
'blop' size ⇒ 4
true not ⇒ false
Object class ⇒ Object 클래스 "Object의 클래스가 Object 클래스입니다 (!)"


단항 메시지는 어떤 인자도 요구하지 않는 메시지 입니다. 단항 메시지는 receiver selector 의 문법구조로 되어 있습니다


이항 메시지

이항 메시지는 정확히 하나의 인자를 필요로 하고 메세지의 선택자가 : +, --, *,/, &, =, >, |, <, , 그리고 @ 등과 같은 분류에서 가져온 하나 이상의 문자가 붙어오도록 만들어져 있는 메시지입니다: -- 은 문장의 해석양식에서 허용되지 않습니다.

100@100 ⇒ 100@100 "creates a Point object"
3+4 ⇒ 7
10 -- 1 ⇒ 9
4 <= 3 ⇒ false
(4/3) * 3 = 4 ⇒ true "등식은 이항 메시지이며 분수 표현은 정확합니다"
(3/4) == (3/4) ⇒ false "두개의 동일한 분수는 같은 객체가 아닙니다"


, <, , 그리고 @ 등과 같은 분류에서 가져온, 하나 또는 그 이상의 문자의 연속으로 만들어져 있는 메시지입니다. 이항 메시지는 receiver selector argument 의 문법구조로 되어있습니다.


키워드 메시지

키워드 메세지는 각각 콜론으로 끝나는 셀렉터와 그에 따르는 한개 또는 복수의 인자로 구성된 메세지입니다. 키워드 메시지는 다음의 문법구조로 되어있습니다: receiver selectorWordOne: argument-One wordTwo: argumentTwo

키워드는 따로따로 인자를 취합니다. 그러므로 r:g:b:는 3 개의 인자를 가진 메서드이며, playFileNamed: 와 at: 은 1개씩의 인자를 가진 메서드고, at:put:는 2 개의 인자를 가진 메서드 입니다. color 클래스로 인스턴스를 만들면, Color r:1 g:0 b:0 에서와 같이 색상을 빨강으로 만드는 메서드 r:g:b: 을 사용할 수 있습니다. :(콜론) 은 셀렉터의 일부임을 주의합니다.


자바 또는 C++에서, 스몰트크 메서드 불러오기. Color r: 1 g: 0 b: 0를 Color.rgb(1,0,0)로 작성할 수 있습니다.


1 to: 10                          (1 to: 10) "인터벌을 만듭니다"
Color r: 1 g: 0 b: 0              Color red "새 색상을 만듭니다"
12 between: 8 and: 15       true

nums := Array newFrom: (1 to: 5).
nums at: 1 put: 6.
nums                              #(6 2 3 4 5)


키워드 메시지는 한 개 이상의 인자를 요구합니다. 그 인자들의 선택자는 각각 콜론 (:) 으로 끝나는 한 개 또는 그 이상의 키워드들로 구성됩니다. 키워드 메시지는 다음의 문법구조로 되어있습니다:
receiver selectorWordOne: argument-One wordTwo: argumentTwo


Notes