GnuSmalltalkUsersGuide:BaseChapter 062

From 흡혈양파의 번역工房
Revision as of 05:18, 27 January 2014 by Onionmixer (talk | contribs) (GSUG Dictionary 페이지 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Dictionary

Dictionary

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: HashedCollection

범주: 컬렉션-Keyed


나는 유일한 객체에 의해 색인되는 객체인 dictionary를 구현하고 (주로 Symbol의 인스턴스), 다른 객체를 해당 색인과 연관시킨다. 나는 상등 연산자 =를 이용해 색인의 등가성을 결정한다. 일반 Dictionary를 사용하는 대부분의 장소에서는 LookupTable이 더 편리할 것이다; 사용 전에 LookupTable의 주석을 참고하라. 몇몇 특수 사례에서 유용한 특수 기능도 몇 가지 있다.


Dictionary 클래스: 인스턴스 생성

from: anArray

{1 -> 2. 3 -> 4}처럼 anArray 내의 Association의 키와 값에서 생성된 새 dictionary를 응답하라. anArray는 bracesyntax(중괄호 구문)를 이용해 명시되어야 한다.

new

기본 크기로 된 새 dictionary를 생성하라.


Dictionary: 접근하기

add: newObject

newObject 연관을 수신자에게 추가하라.

addAll: aCollection

모든 'aCollection' 의 요소를 수신자에게 추가하고 aCollection를 응답하라.

associationAt: key

주어진 키에 대한 키/값 Association을 응답하라. 키를 찾을 수 없는 경우 실패한다.

associationAt: key ifAbsent: aBlock

주어진 키에 대한 키/값 Association을 응답하라. 키를 찾을 수 없는 경우 aBlock을 평가하라(결과를 응답하라).

associations

Dictionary의 내용을 Associations의 Set로서 리턴하라.

at: key

주어진 키에 연관된 값을 응답하라. 키를 찾을 수 없는 경우 실패한다.

at: key ifAbsent: aBlock

주어진 키에 연관된 값을 응답하고, 키를 찾을 수 없는 경우 aBlock을 평가한 결과를 응답하라.

at: aKey ifAbsentPut: aBlock

주어진 키에 연관된 값을 응답하라. 키를 찾을 수 없는 경우 aBlock을 평가하고 결과를 리턴하기 전에 결과를 aKey와 연관시켜라.

at: aKey ifPresent: aBlock

aKey가 없는 경우 nil을 응답하라. 그 외의 경우 aBlock을 평가하고 연관된 값을 전달하며, 호출의 결과를 응답하라.

at: key put: value

값을 주어진 키와 연관시켜 보관하라.

atAll: keyCollection

주어진 키만 포함하는 Dictionary를 응답하라. 찾을 수 없다면 실패한다.

keyAtValue: value

주어진 값에 연관된 키를 응답하고, 값을 찾을 수 없는 경우 nil을 응답하라.

keyAtValue: value ifAbsent: exceptionBlock

주어진 값에 연관된 키를 응답하라. 값을 찾을 수 없는 경우 exceptionBlock를 평가하라(결과를 응답). 중요: 값의 비교에 ==가 사용된다.

keys

수신자의 키를 포함하는 Set의 유형을 응답하라.

values

수신자의 값을 포함하는 Array를 응답하라.


Dictionary: 끔찍한 ST-80 호환성 hacks

findKeyIndex: key

키가 색인된 변수의 키로서 존재하는지 보기를 시도한다. Nil 또는 올바른 키와 연관이 발견되는 즉시 그 슬롯의 색인이 응답된다.


Dictionary: dictionary 열거하기

associationsDo: aBlock

dictionary 내 각 연관을 aBlock으로 전달하라.

collect: aBlock

aBlock으로 각 값의 전달과 리턴 값의 전달을 통해 값을 얻으면서 키가 동일한 새 dictionary를 응답하라.

do: aBlock

dictionary 내 각 값을 aBlock으로 전달하라.

keysAndValuesDo: aBlock

dictionary 내 각 키/값 쌍을 구분된 두 개의 매개변수로서 aBlock에 전달하라.

keysDo: aBlock

dictionary 내 각 키를 aBlock으로 전달하라.

reject: aBlock

aBlock이 false를 리턴하는 키/값 쌍을 포함하는 새 dictionary를 응답하라. aBlock은 그 쌍에서 값 부분만 수신한다.

select: aBlock

aBlock이 true를 리턴하는 키/값 쌍을 포함하는 새 dictionary를 응답하라. aBlock은 그 쌍에서 값 부분만 수신한다.


Dictionary: dictionary 제거하기

remove: anAssociation

dictionary에서 anAssociation의 키를 제거하라.

remove: anAssociation ifAbsent: aBlock

dictionary에서 anAssociation의 키를 제거하라.

removeAllKeys: keys

오류를 발생시키지 않고 keys 내 모든 키를 제거하라.

removeAllKeys: keys ifAbsent: aBlock

keys 내 모든 키를 제거하고, 키가 누락되었음을 발견할 때마다 매개변수로서 aBlock에게 전달하라.

removeKey: key

dictionary에서 전달된 키를 제거하고, 발견할 수 없는 경우 실패한다.

removeKey: key ifAbsent: aBlock

dictionary에서 전달된 키를 제거하고, 발견할 수 없는 경우 aBlock을 평가한 결과를 응답하라.


Dictionary: dictionary 검사하기

includes: anObject

수신자가 그 값들 중 하나로 anObject를 포함하는지 응답하라.

includesAssociation: anAssociation

수신자가 anAssociation의 키에 해당하는 키를 포함하고, 그 값이 anAssociation의 값인지를 응답하라.

includesKey: key

수신자가 주어진 키를 포함하는지를 응답하라.

occurrencesOf: aValue

aValue의 발생 횟수가 수신자의 값들 중 하나인지 응답하라.


Dictionary: 네임스페이스 프로토콜

allSuperspaces

컬렉션 내 수신자의 모든 슈퍼스페이스를 응답하라.

allSuperspacesDo: aBlock

수신자의 슈퍼스페이스마다 aBlock을 평가하라 (BindingDictionary의 경우 슈퍼스페이스가 0).

definedKeys

수신자의 키를 포함하는 Set의 유형을 응답하라.

definesKey: key

수신자가 주어진 키를 정의하는지를 응답하라. '정의'란 수신자의 슈퍼스페이스가 존재할 경우 그것이 고려되지 않음을 의미한다.

hereAssociationAt: key

이 네임스페이스*에서 'key'가 명시한 대로 명명된 변수에 대한 연관을 리턴하라. 키를 찾을 수 없는 경우 검색은 네임스페이스에서 실행되지 *않을* 것이며 메서드는 실패할 것이다.

hereAssociationAt: key ifAbsent: aBlock

이 네임스페이스*에서 'key'가 명시한 대로 명명된 변수에 대한 연관을 리턴하라. 키를 찾을 수 없는 경우 검색은 네임스페이스에서 실행되지 *않을* 것이며 aBlock이 즉시 평가될 것이다.

hereAt: key

이 네임스페이스*에서 'key'가 명시한 대로 명명된 변수에 대한 연관을 리턴하라. 키를 찾을 수 없는 경우 검색은 네임스페이스에서 실행되지 *않을* 것이며 메서드는 실패할 것이다.

hereAt: key ifAbsent: aBlock

이 네임스페이스*에서 'key'가 명시한 대로 명명된 변수에 대한 연관을 리턴하라. 키를 찾을 수 없는 경우 검색은 네임스페이스에서 실행되지 *않을* 것이며 aBlock이 즉시 평가될 것이다.

inheritsFrom: aNamespace

aNamespace가 수신자의 직접 및 간접 슈퍼스페이스 중 하나에 해당하는지를 응답하라.

superspace

수신자의 슈퍼스페이스를 응답하라. BindingDictionary의 경우 nil이 될 것이다.

withAllSuperspaces

컬렉션 내 수신자와 그 슈퍼스페이스를 모두 응답하라. BindingDictionary의 경우 0이 될 것이다.

withAllSuperspacesDo: aBlock

수신자와 그의 모든 직접 및 간접 슈퍼스페이스에 대해 aBlock을 호출하라 (BindingDictionary는 아무 것도 갖지 않겠지만).


Dictionary: 인쇄하기

inspect

수신자 내 모든 인스턴스 변수와 객체를 Transcript 상에 인쇄하라.

printOn: aStream

수신자의 표현을 aStream 상에 인쇄하라.


Dictionary: 재해싱하기

rehash

수신자를 재해싱하라.


Dictionary: 제거하기

removeAllKeysSuchThat: aBlock

aBlock이 true를 리턴하는 모든 키를 수신자로부터 제거하라.


Dictionary: 보관하기

storeOn: aStream

수신자로 컴파일하는 스몰토크 코드를 aStream 상에 인쇄하라.


Dictionary: 검사하기

= aDictionary

수신자와 aDictionary가 같은지 응답하라.

hash

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


Notes