GnuSmalltalkUsersGuide:BaseChapter 147

From 흡혈양파의 번역工房
Jump to navigation Jump to search
SequenceableCollection

SequenceableCollection

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: Collection

범주: 컬렉션-순차 가능


나의 인스턴스들은 정렬된 객체의 컬렉션을 표현한다. 나는 접근 및 조작 메서드를 몇 가지 제공한다.


SequenceableCollection 클래스: 인스턴스 생성

join: aCollection separatedBy: sepCollection

aCollection이 SequenceableCollections의 컬렉션인 경우 sepCollection의 발생순으로 모든 요소들이 구분된 새 인스턴스를 응답하라.


SequenceableCollection: 기본

after: oldObject

oldObject 다음 요소를 리턴하라. oldObject를 발견할 수 없거나 이용할 수 있는 다음 객체가 없는 경우 오류가 발생한다.

allButFirst

첫 번째 객체 없이 수신자의 복사본을 응답하라.

allButFirst: n

처음부터 n 개의 객체 없이 수신자의 복사본을 응답하라.

allButLast

마지막 객체 없이 수신자의 복사본을 응답하라.

allButLast: n

마지막부터 n 개의 객체 없이 수신자의 복사본을 응답하라.

at: anIndex ifAbsent: aBlock

컬렉션의 anIndex 번째 항목을 응답하거나, 색인이 범위를 벗어난 경우 aBlock을 평가하여 결과를 응답하라.

atAll: keyCollection

#collect: 가 리턴하는 것과 같은 유형의 컬렉션, 즉 주어진 색인에서의 값만 포함하는 컬렉션을 응답하라. keyCollection 내 어떤 값이라도 수신자 범위에서 벗어난 경우 실패한다.

atAll: aCollection put: anObject

aCollection에 포함된 색인마다 anObject를 놓아라.

atAllPut: anObject

수신자 내 모든 색인마다 anObject를 놓아라.

atRandom

수신자의 무작위 항목을 리턴하라.

before: oldObject

oldObject 이전 요소를 리턴하라. oldObject를 발견할 수 없거나 앞의 객체를 이용할 수 없는 경우 오류가 발생한다.

first

수신자 내 첫 항목을 응답하라.

first: n

수신자 내 첫 n개 항목을 응답하라.

fourth

수신자 내 4번째 항목을 응답하라.

identityIncludes: anObject

우리가 anObject 객체를 포함하는지를 응답하라.

identityIndexOf: anElement

수신자 내 anElement와 동일한 객체의 첫 번째 발생의 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 0을 응답하라.

identityIndexOf: anElement ifAbsent: exceptionBlock

수신자 내 anElement와 동일한 객체의 첫 번째 발생의 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 exceptionBlock을 호출하여 결과를 응답하라.

identityIndexOf: anElement startingAt: anIndex

anElement와 동일한 객체를 포함하면서 anIndex보다 큰 첫 번째 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 0을 응답하라.

identityIndexOf: anObject startingAt: anIndex ifAbsent: exceptionBlock

anObject와 정확히 동일한 객체를 포함하면서 anIndex보다 큰 첫 번째 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 exceptionBlock을 호출하여 결과를 응답하라.

identityIndexOfLast: anElement ifAbsent: exceptionBlock

anElement와 동일한 객체를 포함하는 마지막 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 exceptionBlock을 호출하여 결과를 응답하라.

includes: anObject

우리가 anObject를 포함하는지를 응답하라.

indexOf: anElement

수신자 내 첫 번째 anElement의 발생의 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 0을 응답하라.

indexOf: anElement ifAbsent: exceptionBlock

수신자 내 첫 번째 anElement의 발생의 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 exceptionBlock을 호출하여 결과를 응답하라.

indexOf: anElement startingAt: anIndex

anElement를 포함하면서 anIndex보다 큰 첫 번째 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 0을 응답하라.

indexOf: anElement startingAt: anIndex ifAbsent: exceptionBlock

anElement를 포함하면서 anIndex보다 큰 첫 번째 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 exceptionBlock을 호출하여 결과를 응답하라.

indexOfLast: anElement ifAbsent: exceptionBlock

anElement를 포함하는 마지막 색인을 응답하라. 어떤 항목도 발견되지 않는 경우 exceptionBlock을 호출하여 결과를 응답하라.

indexOfSubCollection: aSubCollection

aSubCollection에 일치하는 항목 시퀀스가 시작되면서 anIndex보다 큰 첫 번째 색인을 응답하라. 어떤 시퀀스도 발견되지 않는 경우 0을 응답하라.

indexOfSubCollection: aSubCollection ifAbsent: exceptionBlock

aSubCollection에 일치하는 항목 시퀀스가 시작되면서 anIndex보다 큰 첫 번째 색인을 응답하라. 어떤 시퀀스도 발견되지 않는 경우 0을 응답하라.

indexOfSubCollection: aSubCollection startingAt: anIndex

aSubCollection에 일치하는 항목 시퀀스가 시작되면서 anIndex보다 큰 첫 번째 색인을 응답하라. 어떤 시퀀스도 발견되지 않는 경우 0을 응답하라.

indexOfSubCollection: aSubCollection startingAt: anIndex ifAbsent: exceptionBlock

aSubCollection에 일치하는 항목 시퀀스가 시작되면서 anIndex보다 큰 첫 번째 색인을 응답하라. 어떤 시퀀스도 발견되지 않는 경우 exceptionBlock을 호출하여 결과를 응답하라.

last

수신자 내 마지막 항목을 응답하라.

last: n

수신자 내 마지막 n개 항목을 응답하라.

second

수신자 내 두 번째 항목을 응답하라.

third

수신자 내 세 번째 항목을 응답하라.


SequenceableCollection: 비교하기

endsWith: aSequenceableCollection

수신자가 aSequenceableCollection과 같은 문자로 끝날 경우 true를 리턴한다.

startsWith: aSequenceableCollection

수신자가 aSequenceableCollection과 같은 문자로 시작할 경우 true를 리턴한다.


SequenceableCollection: 연결하기(concatenating)

join: sepCollection

나의 첫 요소처럼 나의 모든 요소들이 (컬렉션이어야 한다) sepCollection에 따라 (순서대로) 구분되어 있는 새 컬렉션을 응답하라. 나는 myself 대신 첫 번째 요소를 prototype으로 사용하는데, 나 자체보다는 나의 요소들이 다음과 같이 더 바람직한 프로퍼티를 공유할 가능성이 높기 때문이다:
#('hello,' 'world') join: ' ' => 'hello, world'

with: aSequenceableCollection

수신자와 aSequenceableCollection의 크기와 같은 Array를 리턴하되 각 요소는 수신자로부터 하나의 요소와 aSequenceableCollection의 요소 하나를 포함해 2-요소 Arrays여야 한다.

with: seqColl1 with: seqColl2

수신자와 인자들의 크기와 같은 Array를 리턴하되 각 요소는 수신자로부터 하나의 요소와 각 인자의 요소 하나씩을 포함해 3-요소 Arrays여야 한다.

with: seqColl1 with: seqColl2 with: seqColl3

수신자와 인자들의 크기와 같은 Array를 리턴하되 각 요소는 수신자로부터 하나의 요소와 각 인자의 요소 하나씩을 포함해 4-요소 Arrays여야 한다.


SequenceableCollection: SequenceableCollections 복사하기

, aSequenceableCollection

수신자의 끝에 aSequenceableCollection을 추가하고(#add:를 이용) 새 컬렉션을 응답하라.

copyAfter: anObject

anObject의 첫 번째 발생부터 끝까지 수신자의 모든 요소를 보유하는 새 컬렉션을 응답하라.

copyAfterLast: anObject

anObject의 마지막 발생부터 끝까지 수신자의 모든 요소를 보유하는 새 컬렉션을 응답하라.

copyFrom: start

start번째부터 수신자 내 모든 항목을 포함하는 새 컬렉션을 응답하라.

copyFrom: start to: stop

start번째부터 stop번째까지 수신자 내 모든 항목을 포함하는 새 컬렉션을 응답하라.

copyReplaceAll: oldSubCollection with: newSubCollection

oldSubCollection에 일치하는 모든 시퀀스가 newSubCollection으로 대체된 새 컬렉션을 응답하라.

copyReplaceFrom: start to: stop with: replacementCollection

'start' 색인부터 'stop' 색인까지 요소를 제외하고 수신자와 같은 요소를 같은 순서로 포함함과 동시 수신자와 동일한 클래스의 새 컬렉션을 응답하라.

Start<stop인 경우 이는 replacementCollection의 내용으로 대체된다. 대신 'copyReplaceFrom: 4 to: 3 with: anArray' 에서와 같이 start = (stop + 1)인 경우 수신자의 모든 요소는 응답된 복사본에 존재할 것이다; stop이 수신자의 크기와 동일할 경우 연산이 추가될 것이고, 그렇지 않은 경우 'start' 색인 앞에 삽입될 것이다.

copyReplaceFrom: start to: stop withObject: anObject

'start' 색인부터 'stop' 색인까지 요소를 제외하고 수신자와 같은 요소를 같은 순서로 포함함과 동시 수신자와 동일한 클래스의 새 컬렉션을 응답하라.

Start<stop인 경우 이는 anObject의 stop-start+1 복사본으로 대체된다. 대신 start = (stop + 1)인 경우 수신자의 모든 요소는 응답된 복사본에 존재할 것이다; stop이 수신자의 크기와 동일할 경우 연산이 추가될 것이고, 그렇지 않은 경우 'start' 색인 앞에 삽입될 것이다.

copyUpTo: anObject

수신자의 모든 요소를 처음부터 시작해 anObject는 제외하고 그 첫 번째 발생까지 모두 보유하는 새 컬렉션을 응답하라.

copyUpToLast: anObject

수신자의 모든 요소를 처음부터 시작해 anObject는 제외하고 그 마지막 발생까지 모두 보유하는 새 컬렉션을 응답하라.

copyWithFirst: anObject

anObject의 첫 번째 발생 이후 마지막까지 수신자의 모든 요소를 보유하는 새 컬렉션을 응답하라.


SequenceableCollection: 열거하기

anyOne

컬렉션의 명시되지 않은 요소를 응답하라.

do: aBlock

순차 가능한 컬렉션 내 모든 요소에 대해 aBlock을 평가하라.

do: aBlock separatedBy: sepBlock

순차 가능한 컬렉션 내 모든 요소에 대해 aBlock을 평가하라. 각 요소 사이에는 매개변수 없이 sepBlock을 평가하라.

doWithIndex: aBlock

순차 가능한 컬렉션 내 모든 요소에 대해 aBlock을 평가하고, 각 요소의 색인을 두 번째 매개변수로서 전달하라. 각 메서드는 이전 버전과의 호환성을 위해(backwards compatibility) 유지되고, ANSI 표준을 의무로 하지 않는다; #keysAndValuesDo: 를 사용하라.

findFirst: aBlock

aBlock이 true를 리턴하는 순차 가능 컬렉션의 첫 번째 요소의 색인을 리턴하고, 발견되지 않는 경우 0을 리턴하라.

findLast: aBlock

aBlock이 true를 리턴하는 순차 가능 컬렉션의 마지막 요소의 색인을 리턴하고, 발견되지 않는 경우 0을 리턴하라.

fold: binaryBlock

첫째로 수신자의 첫 번째와 두 번째 요소를 binaryBlock으로 전달하라; 잇따른 각 요소는 이전 평가 결과와 요소를 전달하라. 마지막 호출 결과를 응답하고, 컬렉션 크기가 1인 경우 첫 번째 요소를 응답하라. 컬렉션이 빈 경우 실패한다.

from: startIndex to: stopIndex do: aBlock

색인이 stopIndex로의 범위 색인 내에 있는 순차 가능 컬렉션 내 모든 요소들에 대해 aBlock을 평가하라.

from: startIndex to: stopIndex doWithIndex: aBlock

색인이 stopIndex로의 범위 색인 내에 있는 순차 가능 컬렉션 내 모든 요소들에 대해 aBlock을 평가하고, 각 요소의 색인을 두 번째 매개변수로서 전달하라. 해당 메서드는 이전 버전과의 호환성을 위해(backwards compatibility) 유지되고, ANSI 표준을 의무로 하지 않는다; #from:to:keysAndValuesDo: 를 사용하라.

from: startIndex to: stopIndex keysAndValuesDo: aBlock

색인이 stopIndex로의 범위 색인 내에 있는 순차 가능 컬렉션 내 모든 요소들에 대해 aBlock을 평가하고, 각 요소의 색인을 첫 번째 매개변수, 각 요소를 두 번째 매개변수로서 전달하라.

keys

수신자 내 유효한 색인에 해당하는 Interval을 리턴하라.

keysAndValuesDo: aBlock

순차 가능 컬렉션 내 모든 요소에 대해 aBlock을 평가하고, 각 요소의 색인을 첫 번째 매개변수, 각 요소를 두 번째 매개변수로서 전달하라.

readStream

수신자 상에서 스트리밍하는 ReadStream을 응답하라.

readWriteStream

수신자 상에서 스트리밍하는 ReadWriteStream을 응답하라.

reverse

수신자의 내용을 역순으로 응답하라.

reverseDo: aBlock

마지막부터 첫 번째까지 순차 가능 컬렉션 내 모든 요소에 대해 aBlock을 평가하라.

with: aSequenceableCollection collect: aBlock

수신자와 aSequenceableCollection 각각으로부터 취한 요소 쌍마다 aBlock을 평가하라; 블록의 리턴값으로 만들어진, 수신자와 같은 유형의 컬렉션을 응답하라. 수신자와 aSequenceableCollection의 크기가 같지 않은 경우 실패한다.

with: aSequenceableCollection do: aBlock

수신자와 aSequenceableCollection 각각으로부터 취한 요소 쌍마다 aBlock을 평가하라. 수신자와 aSequenceableCollection의 크기가 같지 않은 경우 실패한다.


SequenceableCollection: 조작

swap: anIndex with: anotherIndex

색인 anIndex에 위치한 항목을 다른 색인에 위치한 항목과 교체하라.


SequenceableCollection: 항목 대체하기

replaceAll: anObject with: anotherObject

수신자 내에서 anObject의 발생마다 anotherObject로 대체하라.

replaceFrom: start to: stop with: replacementCollection

start부터 stop까지 항목을 1부터 stop-start+1까지 범위에서 얻은 replacementCollection의 항목으로 대체하라 (컬렉션이 순차 가능하지 않은 경우 예기치 못한 순서로).

replaceFrom: start to: stop with: replacementCollection startingAt: repStart

start부터 stop까지 항목을 repStart부터 reStart+stop-start까지 범위에서 얻은 replacementCollection의 항목으로 대체하라.

replaceFrom: anIndex to: stopIndex withObject: replacementObject

start부터 stop까지 모든 항목을 replacementObject로 대체하라.


SequenceableCollection: 정렬하기

sort

항목 비교에 #<=를 사용하는 기본 정렬 블록에 따라 수신자의 내용을 정렬하라.

sortBy: sortBlock

주어진 정렬 블록에 따라 수신자의 내용을 정렬하되 항목의 쌍을 허용하고 첫 번째 항목이 두 번째 항목보다 작은 경우 true를 리턴하라.


SequenceableCollection: 아직 분류되지 않음

nextPutAllOn: aStream

수신자 내 모든 객체를 aStream에 작성하라.


SequenceableCollection: 검사하기

= aCollection

수신자의 항목이 aCollection 내의 항목과 일치하는지 응답하라.

hash

수신자에 대한 해시값을 응답하라.

inspect

수신자의 내용과 모든 인스턴스 변수를 Transcript 상에 인쇄하라.

isSequenceable

#at:/-#at:put: 를 이용해 수치 색인에 의한 수신자 접근이 가능한지 응답하라.


Notes