SqueakByExample:10.1

From 흡혈양파의 번역工房
Revision as of 04:17, 17 August 2012 by Onionmixer (talk | contribs) (SBE 구성요소들의두개의시퀀스)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

구성요소들의 두 개의 시퀀스

스트림을 이해하는 훌륭한 비유는 다음과 같습니다: 스트림(stream)은 2 개의 구성요소의 시퀀스들로 나타날 수 있습니다: 그것들은 과거 구성요소 시퀀스(a past element sequence)와 미래 구성요소 시퀀스(future element sequence)입니다. 스트림은 두 개의 시퀀스 사이에 위치합니다. 이 모델에 대한 이해는 중요하며, 그 이유는 스몰토크에서 모든 스트림 연산(operations)이 이 모델에 기초하기 때 문입니다. 그러한 이유 때문에, 대부분의 스트림 클래스들은 PositionableStream의 서브클래스들입니다. 그림 10.1은 5개의 문자를 포함하고 있는 스트림을 제시합니다. 이 스트림은 예컨데 과거(past)에 아무 구성요소도 갖고 있지 않은, 그 자신의 위치에 놓여 있습니다. 여러분은 메시지 reset을 사용하여 이 위치를 다시 뒤로 돌릴 수 있습니다.

그림 10.1 시작 시점에, 위치를 잡은 스트림(Stream)


구성요소를 개념적으로 읽는 것이 의미하는 것은 첫 번째 구성요소 시퀀스(the future element sequence)의 첫 번째 구성요소 시퀀스(the future element sequence)를 제거하는 것이고, 지난 구성요소 시퀀스(the past element sequence)뒤에 그것을 집어넣는다는 것입니다.


메시지 next를 사용하여 하나의 구성요소를 읽은 후에, 여러분의 스트림(stream)의 상태는 그림 10.2에 나타납니다.

그림 10.2: 메소드 next:의 실행 이후에 동일한 스트림(stream)


문자 b,c,d 그리고 e는 “미래에(in the future)”에 있는 반면에 문자 a는 “과거에(in the past)”에 있습니다. 구성요소를 작성(쓰기) 한다는 의미는 새로운 것으로 미래 시퀀스(the future sequence)의 첫 번째 구성요소를 대체하는 것이고, 과거(the past)로 그 구성요소를 이동시킨다는 것입니다. 그림 10.3은 메시지 nextPut:anElement를 사용하여 x를 쓰기 한 이후의 동일한 스트림(stream)의 상태를 보여 드리고 있습니다.

그림 10.3: x에 쓰기 이후 동일한 스트림

Notes