GnuSmalltalkUsersGuide:BaseChapter 211

From 흡혈양파의 번역工房
Jump to navigation Jump to search
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