GnuSmalltalkUsersGuide:BaseChapter 113
- Namespace
Namespace
네임스페이스 Smalltalk에 정의됨
슈퍼클래스: AbstractNamespace
범주: 언어-구현
- 나는 슈퍼 네임스페이스를 가진 Namespace이다.
Namespace 클래스: 접근하기
current
현재 네임스페이스를 응답하라.
current: aNamespaceOrClass
현재 네임스페이스를 aNamespace로 설정하고, 클래스인 경우 그것의 클래스 풀(클래스 변수를 보유한 Dictionary)로 설정하라.
Namespace 클래스: 인스턴스 생성 비활성화하기
new
비활성화됨 - #addSubspace: 를 이용해 인스턴스를 생성하라.
new: size
비활성화됨 - #addSubspace: 를 이용해 인스턴스를 생성하라.
Namespace 클래스: 초기화
initialize
사실상 필요 없는 것이 dict.c에서 (함수 네임스페이스_new) 실행할 수 있기 때문이다. 하지만 나는 게으르기 때문에 Smalltalk의 IdentitySet에 대한 구현에 의존하는 편을 선호한다.
Namespace: 접근하기
inheritedKeys
수신자와 그 슈퍼스페이스 내 모든 키의 Set를 응답하라.
Namespace: 네임스페이스 계층구조
siblings
수신자의 슈퍼스페이스에서 상속되는 다른 모든 네임스페이스를 응답하라.
siblingsDo: aBlock
수신자의 슈퍼스페이스에서 상속되는 다른 네임스페이스 각각마다 aBlock을 한 번씩 평가하고 네임스페이스를 매개변수로서 전달하라.
Namespace: 슈퍼스페이스에 대한 오버라이드
associationAt: key ifAbsent: aBlock
'key'가 명시한대로 명명된 변수와 연관된 키/값 쌍을 리턴하라. 키를 찾을 수 없는 경우 슈퍼스페이스에서 검색이 야기되고, 어느 슈퍼스페이스에서도 변수를 찾을 수 없는 경우 aBlock을 평가한다.
associationsDo: aBlock
네임스페이스 내 각 연관을 aBlock으로 전달하라.
at: key ifAbsent: aBlock
'key'가 명시한대로 명명된 변수와 연관된 값을 리턴하라. 키를 찾을 수 없는 경우 슈퍼스페이스에서 검색이 야기되고, 어느 슈퍼스페이스에서도 변수를 찾을 수 없는 경우 aBlock을 평가한다.
at: key ifPresent: aBlock
수신자와 그 슈퍼스페이스에서 aKey를 찾을 수 없는 경우 nil을 응답하라. 그 외의 경우 aBlock을 평가해 연관된 값을 전달하고 호출 결과를 응답하라.
do: aBlock
네임스페이스 내 각기 값을 aBlock으로 전달하라.
includesKey: key
수신자 또는 그 슈퍼스페이스가 주어진 키를 포함하는지를 응답하라.
keysAndValuesDo: aBlock
두 개의 구분된 매개변수에서 수신자의 키와 값 각각을 aBlock으로 전달하라.
keysDo: aBlock
수신자의 각 키를 aBlock으로 전달하라.
set: key to: newValue ifAbsent: aBlock
newValue를 'key'가 명시한대로 명명된 변수로 할당하라. 해당 메서드는 새 변수를 정의하지 않을 것이다; 대신 키를 찾을 수 없는 경우 슈퍼스페이스에서 검색하고, 슈퍼스페이스에서도 찾을 수 없다면 aBlock을 평가할 것이다. newValue를 응답하라.
size
수신자와 각 슈퍼스페이스 내의 키 개수를 응답하라.
Namespace: 인쇄하기
nameIn: aNamespace
현재 네임스페이스가 aNamespace일 때 수신자로 컴파일하는 스몰토크 코드를 응답하라.
printOn: aStream in: aNamespace
현재 네임스페이스가 aNamespace일 때 수신자로 컴파일하는 일부 스몰토크 코드를 aStream 상에 인쇄하라.
storeOn: aStream
수신자로 컴파일하는 스몰토크 코드를 보관하라.