GnuSmalltalkUsersGuide:BaseChapter 001

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
AbstractNamespace

AbstractNamespace

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: BindingDictionary

범주: 언어-구현


나는 특별한 형태의 dictionary 이다. 클래스들은 나의 인스턴스를 보유한다; 이것을 클래스의 '환경'이라 부른다.


AbstractNamespace class: 인스턴스 생성

new

비활성화됨 – 인스턴스를 생성하기 위해 #new를 사용하라.

primNew: parent name: spaceName

private – 주어진 이름과 부모로 새로운 네임스페이스를 생성하고, 그것을 참조하는 키를 부모로 추가하라.


AbstractNamespace: 접근하기

allAssociations

수신자 내에 연관(association)과 각 슈퍼스페이스가 있는 Dictionary를 응답하라 (중복 키는 네임스페이스 계층구조에서 더 깊이 위치한 연관과 관련이 있다)

allBehaviorsDo: aBlock

네임스페이스 내에서 각 클래스와 메타클래스마다 aBlock을 한 번씩 평가하라.

allClassObjectsDo: aBlock

네임스페이스 내에서 각 클래스와 메타클래스마다 aBlock을 한 번씩 평가하라.

allClassesDo: aBlock

네임스페이스 내에서 각 클래스마다 aBlock을 한 번씩 평가하라.

allMetaclassesDo: aBlock

네임스페이스 내에서 각 메타클래스마다 aBlock을 한 번씩 평가하라.

classAt: aKey

aKey에 일치하는 값이 클래스일 경우 그 값을 응답하라. aKey를 찾을 수 없거나 클래스가 아닌 것과 연관된 경우 실패한다.

classAt: aKey ifAbsent: aBlock

aKey에 일치하는 값이 클래스일 경우 그 값을 응답하라. aBlock을 평가하고, aKey를 찾을 수 없거나 클래스가 아닌 것과 연관된 경우 결과를 응답하라.


AbstractNamespace: 컴파일하기

addSharedPool: aDictionary

나를 이용해 컴파일한 클래스에 주어진 바인딩을 환경으로 가져오라 (import).

import: aDictionary

나를 이용해 컴파일한 클래스에 주어진 바인딩을 환경으로 가져오라.

removeSharedPool: aDictionary

직접 풀(direct pool) 리스트에서 aDictionary를 제거하라.

sharedPoolDictionaries

내 클래스를 위해 가져온 공유 풀(이름이 아닌)을 응답하라.


AbstractNamespace: 복사하기

copyEmpty: newSize

크기가 newSize인 수신자의 빈 복사본을 응답하라.

whileCurrentDo: aBlock

현재 수신자로 설정된 네임스페이스로 aBlock을 평가하라. 평가 결과를 응답하라.


AbstractNamespace: 네임스페이스 계층구조

addSubspace: aSymbol

aSymbol로 명명된 네임스페이스를 생성하고, 수신자의 서브스페이스로 추가한 후 그것을 응답하라.

allSubassociationsDo: aBlock

수신자의 각 서브스페이스 내에서 모든 연관마다 aBlock을 한 번씩 호출하라.

allSubspaces

Set에서 수신자의 직접 및 간접 서브스페이스를 응답하라.

allSubspacesDo: aBlock

모든 직접 및 간접 서브스페이스에 대해 aBlock을 호출하라.

allSuperspacesDo: aBlock

수신자의 슈퍼스페이스마다 aBlock을 한 번씩 호출하라.

includesClassNamed: aString

수신자 또는 그 슈퍼스페이스가 주어진 클래스를 포함하는지 여부를 응답하라-해당 메서드는 (#includesKey: 와 달리) aString이 intern 되도록 요구하지 않고, (#includesGlobalNamed:와 달리) 전역 변수가 클래스 객체인 경우 true를 리턴하기만 한다는 사실을 주목한다.

includesGlobalNamed: aString

수신자 또는 그 슈퍼스페이스 중 어떤 것이 주어진 키를 포함하는지 여부를 응답하라-해당 메서드는 (#includesKey: 와 달리) aString이 intern 되도록 요구하지 않지만, (#includesClassNamed:와 달리) 전역 변수가 클래스 객체가 아닌 경우에도 true를 리턴한다는 사실을 주목한다.

removeSubspace: aSymbol

aSymbol로 명명된 나의 서브스페이스를 계층구조에서 제거하라.

selectSubspaces: aBlock

aBlock을 충족시키는 수신자의 서브스페이스 Set를 리턴하라.

selectSuperspaces: aBlock

aBlock을 충족시키는 수신자의 슈퍼스페이스 Set를 리턴하라.

siblings

수신자와 같은 네임스페이스의 다른 자식들을 모두 응답하라.

siblingsDo: aBlock

다른 루트 네임스페이스마다 aBlock을 한 번씩 평가하여 네임스페이스를 매개변수로서 전달하라.

subspaces

수신자의 직접 서프스페이스를 응답하라.

subspacesDo: aBlock

모든 직접 서브스페이스에 aBlock을 호출하라.

superspace

수신자의 슈퍼스페이스를 응답하라.

superspace: aNamespace

수신자의 슈퍼스페이스가 'aNamespace' 가 되도록 설정하라. 또한 수신자를 그것의 서브스페이스로서 추가하라.

withAllSubspaces

직접 및 간접 서브스페이스와 함께 수신자를 포함하는 Set를 응답하라.

withAllSubspacesDo: aBlock

수신자와 모든 직접 및 간접 서브클래스에 대해 aBlock을 호출하라.


AbstractNamespace: 슈퍼스페이스 오버라이드

inheritedKeys

수신자와 그 슈퍼스페이스 내에서 모든 키의 Set를 응답하라.

set: key to: newValue

newValue 를 'key'에서 명시한 대로 명명된 변수로 할당하라. 해당 메서드는 새 변수를 정의하지 않을 것이다; 대신 키를 찾을 수 없다면 슈퍼스페이스에서 찾고, 어떤 슈퍼스페이스에서도 변수를 찾을 수 없을 경우 오류를 발생시킨다. newValue를 응답하라.

set: key to: newValue ifAbsent: aBlock

newValue 를 'key'에서 명시한 대로 명명된 변수로 할당하라. 해당 메서드는 새 변수를Assign 정의하지 않을 것이다; 대신 키를 찾을 수 없다면 슈퍼스페이스에서 찾고, 찾을 수 없다면 aBlock을 평가할 것이다. newValue를 응답하라.

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


AbstractNamespace: 인쇄하기

name

수신자명을 응답하라.

name: aSymbol

수신자명을 aSymbol로 변경하라.

nameIn: aNamespace

현재 네임스페이스가 aNamespace일 때 수신자로 컴파일하는 스몰토크 코드를 응답하라.

printOn: aStream

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

storeOn: aStream

수신자로 컴파일하는 스몰토크 코드를 보관하라.


AbstractNamespace: 검사하기

isNamespace

'true'를 응답하라.

isSmalltalk

'false'를 응답하라.


Notes