GnuSmalltalkUsersGuide:BaseChapter 103

From 흡혈양파의 번역工房
Jump to: navigation, search
LookupTable

LookupTable

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: Dictionary

범주: 컬렉션-Keyed


나는 키-값 쌍의 보관에 Associations를 사용하지 않기 때문에 변수의 pool dictionary로서 사용될 수 없는 Dictionary의 효율적인 변형체에 속한다. 또한 nil을 키로 가질 수 없다; nil을 키로 보관할 수 있으려면 Dictionary를 대신 이용해야 한다. 나는 색인의 등가성을 알아내기 위한 객체 일치성 비교 메시지로 #= 를 사용한다.


LookupTable 클래스: 인스턴스 생성

new

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


LookupTable: 접근하기

add: anAssociation

anAssociation 키를 수신자에게 추가하라.

associationAt: key ifAbsent: aBlock

주어진 키로 된 키/값 Association을 응답하라. 키가 발견되지 않은 경우 aBlock를 평가하라(결과를 응답).

at: key ifAbsent: aBlock

주어진 키와 연관된 값을 응답하고, 키가 발견되지 않은 경우 aBlock를 평가한 결과를 응답하라.

at: aKey ifPresent: aBlock

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

at: key put: value

값을 주어진 키와 연관된 것으로 보관하라.


LookupTable: 열거하기

associationsDo: aBlock

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

do: aBlock

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

keysAndValuesDo: aBlock

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

keysDo: aBlock

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


LookupTable: 해싱하기

hash

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


LookupTable: 재해싱하기

rehash

수신자를 재해싱하라.


LookupTable: 제거하기

remove: anAssociation

dictionary로부터 anAssociation의 키를 제거하라.

remove: anAssociation ifAbsent: aBlock

dictionary로부터 anAssociation의 키를 제거하라.

removeKey: key ifAbsent: aBlock

전달된 키를 LookupTable로부터 제거하고, 발견되지 않은 경우 aBlock을 평가한 결과를 응답하라.


LookupTable: 보관하기

storeOn: aStream

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



Notes