GnuSmalltalkUsersGuide:BaseChapter 211

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.
WeakArray

WeakArray

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: Array

범주: 컬렉션-Weak


나는 일반 배열과 비슷하지만 나의 항목들은 약한 객체에 보관되므로 나는 그 중에 어떤 것이 쓰레기 수집되는지 추적한다.


WeakArray 클래스: 인스턴스 생성

new

0 크기의 새 WeakArray를 생성하라.

new: size

주어진 크기의 새 WeakArray를 생성하라.


WeakArray: 접근하기

aliveObjectsDo: aBlock

쓰레기로 수집된 요소를 제외하고 배열 내 모든 요소에 대해 aBlock을 평가하라. 주목: finalize된 객체들은 다음 쓰레기 수집때까지 생존하므로 (수집기는 객체가 finalizer에 의해 소생되었는지 여부를 볼 수 있는 수단을 갖고 있지 않음), 생존한 객체라고 해서 사용 가능한 객체란 의미는 아니다.

at: index

수신자의 index번째 항목을 응답하고, 쓰레기 수집된 경우 nil을 응답하라.

at: index put: object

주어진 색인에 연관된 값을 보관하라; 또한 객체가 nil인지를 nilValues에 보관하라. nilValues의 연관 항목이 1인 nil 객체는 쓰레기 수집기에 의해 접촉된다.

atAll: indices put: object

색인 컬렉션에 포함된 색인마다 객체를 놓아라.

atAllPut: object

수신자 내 색인마다 객체를 놓아라.

clearGCFlag: index

주어진 색인에서 항목에 대한 '객체가 쓰레기로 수집됨' 플래그를 제거하라.

do: aBlock

쓰레기 수집된 객체를 포함해 (이러한 경우 nil을 전달) 배열 내 모든 요소에 대해 aBlock을 평가하라.

isAlive: index

주어진 색인에 있는 항목이 여전히 생존했는지 아니면 쓰레기로 수집되었는지 응답하라. 주목: finalize된 객체들은 다음 쓰레기 수집때까지 생존하므로 (수집기는 객체가 finalizer에 의해 소생되었는지 여부를 볼 수 있는 수단을 갖고 있지 않음), 생존한 객체라고 해서 사용 가능한 객체란 의미는 아니다.

size

수신자 내 항목 수를 응답하라.


WeakArray: 변환

asArray

수신자의 non-weak 버전을 응답하라.

deepCopy

수신자의 깊은 복사를 리턴한다 (인스턴스 변수는 수신자의 인스턴스 변수의 복사본이다).

shallowCopy

수신자의 얕은 복사를 리턴하라 (인스턴스 변수는 복사되지 않는다).

species

Array를 응답하라; 해당 메서드는 #copyEmpty: 메시지에서 사용되고, 이 메시지는 컬렉션을 리턴하는 모든 메서드에 의해 사용된다 (collect:, select:, reject:, etc.).


WeakArray: 로딩하기

postLoad

객체가 로딩된 후 호출된다; 'preStore'가 호출되기 이전 상태로 복구되어야 한다. 다시 약하게 만들어라.


Notes