SqueakByExample:10.1: Difference between revisions
Jump to navigation
Jump to search
Onionmixer (talk | contribs) mNo edit summary |
Onionmixer (talk | contribs) (번역수정) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== | ==두 요소에 대한 순서(sequences)== | ||
Stream 을 이해하는 데에 쓰이는 다음과 같은 유용한 비유가 있습니다: Stream 2 개의 구성요소의 나열이라고 할 수 있습니다: 이 2 개의 요소는 이전순서에 해당하는 요소와 다음순서에 해당하는 요소를 말합니다. 이런 모델에 대한 이해는 대단히 중요한데, 왜냐하면 스몰토크에서 모든 Stream 연산은 이 모델을 기본으로 하고있기 때문입니다. 이때문에 대부분의 Stream 클래스들은 PositionableStream 의 서브클래스가 됩니다. 그림 10.1 은 5 개의 Chracter 를 포함하고 있는 Stream 을 보여주고 있습니다. 이경우, Stream 은 처음의 위치에 있으며 이전요소는 가지고 있지 않습니다(stream 내의 position을 의미합니다). 사용자는 reset 이라는 메시지를 사용해서 이 위치를 초기화 시킬 수 있습니다. | |||
[[image:_abcdeStef.png|none|910px|thumb|그림 10.1: 시작 시점에, 위치를 잡은 stream]] | |||
요소를 읽는다 라는 행동을 개념적으로 본다면, 다음순서 요소를 떼어낸다음 그걸 이전요소의 뒷부분에 붙인다는것을 말합니다<ref name="역자주1">지금 현재의 position을 기준으로 다음의 element 를 가져와서 이전 element 의 뒤쪽으로 결합한다는 의미입니다. 결국 1:4 인 배열을 2:3 으로 바꾼다라는 의미가 되겠습니다.</ref>. | |||
next 메시지를 사용해서 하나의 구성요소를 읽은 후, Stream 의 상태는 그림 10.2 처럼 변경됩니다. | |||
[[image:a_bcdeStef.png|none|910px|thumb|그림 10.2: | |||
[[image:a_bcdeStef.png|none|910px|thumb|그림 10.2: 그림 10.1 의 stream 에 next 메시지를 송신한 다음의 상태. chracter a 는 이전에 속하지만 b, c, d, e 는 다음에 속하게 된다.]] | |||
요소를 작성<sup>write</sup> 한다는 것은, 현재 위치에 대한 다음 시퀀스의 앞쪽에 새로운 요소를 교대시키고, 이전 요소의 위치로 새로 바뀐 요소를 이동시킨다는 의미가 됩니다. 그림 10.3 은 메시지 nextPut:anElement 를 사용하여 x 를 작성<sup>write</sup>한 이후의 stream 의 상태를 보여주고 있습니다. | |||
[[image:ax_cdeStef.png|none|910px|thumb|그림 10.3: x 를 write 작업한 이후의 stream]] | |||
==Notes== | ==Notes== |
Latest revision as of 04:04, 14 September 2013
두 요소에 대한 순서(sequences)
Stream 을 이해하는 데에 쓰이는 다음과 같은 유용한 비유가 있습니다: Stream 2 개의 구성요소의 나열이라고 할 수 있습니다: 이 2 개의 요소는 이전순서에 해당하는 요소와 다음순서에 해당하는 요소를 말합니다. 이런 모델에 대한 이해는 대단히 중요한데, 왜냐하면 스몰토크에서 모든 Stream 연산은 이 모델을 기본으로 하고있기 때문입니다. 이때문에 대부분의 Stream 클래스들은 PositionableStream 의 서브클래스가 됩니다. 그림 10.1 은 5 개의 Chracter 를 포함하고 있는 Stream 을 보여주고 있습니다. 이경우, Stream 은 처음의 위치에 있으며 이전요소는 가지고 있지 않습니다(stream 내의 position을 의미합니다). 사용자는 reset 이라는 메시지를 사용해서 이 위치를 초기화 시킬 수 있습니다.
요소를 읽는다 라는 행동을 개념적으로 본다면, 다음순서 요소를 떼어낸다음 그걸 이전요소의 뒷부분에 붙인다는것을 말합니다[1].
next 메시지를 사용해서 하나의 구성요소를 읽은 후, Stream 의 상태는 그림 10.2 처럼 변경됩니다.
요소를 작성write 한다는 것은, 현재 위치에 대한 다음 시퀀스의 앞쪽에 새로운 요소를 교대시키고, 이전 요소의 위치로 새로 바뀐 요소를 이동시킨다는 의미가 됩니다. 그림 10.3 은 메시지 nextPut:anElement 를 사용하여 x 를 작성write한 이후의 stream 의 상태를 보여주고 있습니다.
Notes
- ↑ 지금 현재의 position을 기준으로 다음의 element 를 가져와서 이전 element 의 뒤쪽으로 결합한다는 의미입니다. 결국 1:4 인 배열을 2:3 으로 바꾼다라는 의미가 되겠습니다.