<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=GnuSmalltalkUsersGuide%3ABaseChapter_036</id>
	<title>GnuSmalltalkUsersGuide:BaseChapter 036 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=GnuSmalltalkUsersGuide%3ABaseChapter_036"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_036&amp;action=history"/>
	<updated>2026-05-01T12:03:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_036&amp;diff=4023&amp;oldid=prev</id>
		<title>Onionmixer: GSUG Collection 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_036&amp;diff=4023&amp;oldid=prev"/>
		<updated>2014-01-23T10:00:16Z</updated>

		<summary type="html">&lt;p&gt;GSUG Collection 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;Collection&lt;br /&gt;
&lt;br /&gt;
==Collection==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;네임스페이스 Smalltalk에 정의됨&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;슈퍼클래스: Iterable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;범주: 컬렉션&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:나는 추상 클래스다. 나의 인스턴스들은 객체의 컬렉션들이다. 나의 서브클래스들은 약간의 제약을 가하거나 객체가 어떻게 보관 또는 조직되는지에 대한 일부 정의를 발견할 수도 있다; 나는 이에 대해 어떤 말도 하지 않는다. 단순히 객체의 일반 컬렉션을 위해 객체 생성 및 접근 루틴을 몇 가지 제공할 뿐이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection 클래스: 인스턴스 생성===&lt;br /&gt;
&lt;br /&gt;
====from: anArray====&lt;br /&gt;
&lt;br /&gt;
anArray를 수신자의 인스턴스로 변환하라. anArray는 중괄호 구문을 이용해, 어쩌면 추가 구조를 anArray를 부과함으로써 인스턴스를 편하고 완전하게 명시할 수 있도록 구조화된다.&lt;br /&gt;
&lt;br /&gt;
====join: aCollection====&lt;br /&gt;
&lt;br /&gt;
aCollection 내 모든 요소를 새 인스턴스에 추가될 &amp;#039;withAll:&amp;#039; 인자 컬렉션으로 취급하여 형성된 컬렉션을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====with: anObject====&lt;br /&gt;
&lt;br /&gt;
anObject를 유일한 요소로 가진 컬렉션을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====with: firstObject with: secondObject====&lt;br /&gt;
&lt;br /&gt;
전달된 순서로 된 매개변수를 유일한 요소로 가진 컬렉션을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====with: firstObject with: secondObject with: thirdObject====&lt;br /&gt;
&lt;br /&gt;
전달된 순서로 된 매개변수를 유일한 요소로 가진 컬렉션을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====with: firstObject with: secondObject with: thirdObject with: fourthObject====&lt;br /&gt;
&lt;br /&gt;
전달된 순서로 된 매개변수를 유일한 요소로 가진 컬렉션을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====with: firstObject with: secondObject with: thirdObject with: fourthObject with: fifthObject====&lt;br /&gt;
&lt;br /&gt;
전달된 순서로 된 매개변수를 유일한 요소로 가진 컬렉션을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====withAll: aCollection====&lt;br /&gt;
&lt;br /&gt;
요소들이 aCollection 내에 있는 요소들에 해당하는 컬렉션을 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection 클래스: 멀티바이트 인코딩===&lt;br /&gt;
&lt;br /&gt;
====isUnicode====&lt;br /&gt;
&lt;br /&gt;
true를 응답하라; 수신자는 임시 Unicode 문자를 보관할 수 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection: 추가하기===&lt;br /&gt;
&lt;br /&gt;
====add: newObject====&lt;br /&gt;
&lt;br /&gt;
newObject 를 수신자에게 추가하고 그것을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====addAll: aCollection====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;aCollection&amp;#039;의 모든 요소를 수신자에게 추가하고 aCollection을 응답하라. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection: 연결하기===&lt;br /&gt;
&lt;br /&gt;
====join====&lt;br /&gt;
&lt;br /&gt;
내 첫번째 요소처럼, 컬렉션이어야 하는 나의 모든 요소들의 모든 요소들과 함께 (순서대로) 나의 첫 번째 요소와 같이 새 컬렉션을 응답하라.&lt;br /&gt;
&lt;br /&gt;
나는 myself 대신 나의 첫 번째 요소를 프로토타입으로 사용하는데, 그 이유는 나의 요소들이 나보다 더 바람직한 프로퍼티들을 더 잘 공유하기 때문이다. 예를 들자면 다음과 같다:&lt;br /&gt;
&lt;br /&gt;
:&amp;amp;#35;(&amp;#039;hello, &amp;#039; &amp;#039;world&amp;#039;) join =&amp;gt; &amp;#039;hello, world&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection: 변환하기===&lt;br /&gt;
&lt;br /&gt;
====asArray====&lt;br /&gt;
&lt;br /&gt;
수신자 내의 모든 요소를 포함하는 Array를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====asBag====&lt;br /&gt;
&lt;br /&gt;
수신자 내의 모든 요소를 포함하는 Bag를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====asByteArray====&lt;br /&gt;
&lt;br /&gt;
수신자 내의 모든 요소를 포함하는 byteArray를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====asOrderedCollection====&lt;br /&gt;
&lt;br /&gt;
수신자 내의 모든 요소를 포함하는 OrderedCollection을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====asRunArray====&lt;br /&gt;
&lt;br /&gt;
RunArray로 변환된 수신자를 응답하라. 수신자가 정렬되지 않은 경우 RunArray 내에서 요소의 정렬은 #do: 순이 아닐 수 있다. &lt;br /&gt;
&lt;br /&gt;
====asSet====&lt;br /&gt;
&lt;br /&gt;
수신자 내의 모든 요소를 중복내용 없이 포함하는 Set를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====asSortedCollection====&lt;br /&gt;
&lt;br /&gt;
기본 정렬 블록-[ :a :b | a &amp;lt;= b ]-으로 수신자 내의 모든 요소를 포함하는 SortedCollection을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====asSortedCollection: aBlock====&lt;br /&gt;
&lt;br /&gt;
정렬 블록 aBlock에 따라 정렬된 수신자의 요소를 요소로 가진 SortedCollection을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====asString====&lt;br /&gt;
&lt;br /&gt;
수신자 내의 모든 요소를 포함하는 String을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====asUnicodeString====&lt;br /&gt;
&lt;br /&gt;
수신자 내의 모든 요소를 포함하는 UnicodeString을 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection: 컬렉션 복사하기===&lt;br /&gt;
&lt;br /&gt;
====copyReplacing: targetObject withObject: newObject====&lt;br /&gt;
&lt;br /&gt;
= to targetObject 인 각 객체를 newObject로 대체하여 복사하라.&lt;br /&gt;
&lt;br /&gt;
====copyWith: newElement====&lt;br /&gt;
&lt;br /&gt;
newElement가 추가된 수신자의 복사본을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====copyWithout: oldElement====&lt;br /&gt;
&lt;br /&gt;
oldElement의 모든 발생이 제거된 수신자의 복사본을 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection: 열거===&lt;br /&gt;
&lt;br /&gt;
====anyOne====&lt;br /&gt;
&lt;br /&gt;
명시되지 않은 컬렉션의 요소를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====beConsistent====&lt;br /&gt;
&lt;br /&gt;
해당 메서드는 private하지만 꽤 흥미로운 메서드이므로 문서화한다. 이는 컬렉션에 반복을 시도하기 전에 컬렉션이 일관된 상태에 있도록 확보한다; 이것이 존재하면 실행을 여러 번 분할하여 실행을 시도하는 컬렉션이 필요로 하는 오버라이드 수를 감소시킨다. 기본 구현은 아무 일도 하지 않으므로 가상 머신에 의해 최적화되고 성능 측면에서 손해보는 바는 미비하다. #do: 는 Collection 에서 추상적이기 때문에 Collection의 자손들은 이를 명시적으로 호출함을 주목하라. &lt;br /&gt;
&lt;br /&gt;
====collect: aBlock====&lt;br /&gt;
&lt;br /&gt;
aBlock을 평가하여 수신자의 각 요소를 전달하는 결과를 모두 포함하는 Collection의 새 인스턴스를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====gather: aBlock====&lt;br /&gt;
&lt;br /&gt;
aBlock을 평가한 모든 결과를 포함하는 Collection의 새 인스턴스를 응답하라. aBlock은 컬렉션을 리턴해야 한다. 결과는 aBlock이 (#join의 경우) 리턴하는 첫 번째 컬렉션과 동일한 유형이다. &lt;br /&gt;
&lt;br /&gt;
====readStream====&lt;br /&gt;
&lt;br /&gt;
수신자의 요소를 제공하는 스트림을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====reject: aBlock====&lt;br /&gt;
&lt;br /&gt;
aBlock으로 전달 시 true를 응답하지 않는 수신자 내의 모든 요소를 포함하는 Collection의 새 인스턴스를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====select: aBlock====&lt;br /&gt;
&lt;br /&gt;
aBlock으로 전달 시 true를 응답하는 수신자 내의 모든 요소를 포함하는 Collection의 새 인스턴스를 응답하라. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection: finalization===&lt;br /&gt;
&lt;br /&gt;
====mourn: anObject====&lt;br /&gt;
&lt;br /&gt;
Private - anObject 가 취약 키(weak key)를 가진 것으로 발견되면 제거하고 어쩌면 키를 finalize할지도 모른다. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection: 인쇄하기===&lt;br /&gt;
&lt;br /&gt;
====inspect====&lt;br /&gt;
&lt;br /&gt;
수신자 내의 모든 인스턴스 변수와 객체를 Transcript 상에 인쇄하라.&lt;br /&gt;
&lt;br /&gt;
====printOn: aStream====&lt;br /&gt;
&lt;br /&gt;
수신자의 표현을 aStream 상에 인쇄하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection: 제거하기===&lt;br /&gt;
&lt;br /&gt;
====empty====&lt;br /&gt;
&lt;br /&gt;
수신자로부터 모든 것을 제거하라.&lt;br /&gt;
&lt;br /&gt;
====remove: oldObject====&lt;br /&gt;
&lt;br /&gt;
수신자로부터 oldObject를 제거하라. 찾을 수 없다면 실패하고, 그 외의 경우 oldObject를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====remove: oldObject ifAbsent: anExceptionBlock====&lt;br /&gt;
&lt;br /&gt;
수신자로부터 oldObject를 제거하라. 찾을 수 없다면 anExceptionBlock을 평가하고 결과를 응답하고, 그 외의 경우 oldObject를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====removeAll: aCollection====&lt;br /&gt;
&lt;br /&gt;
aCollection 내에서 각 객체를 제거하고 aCollection을 응답하고, 일부라도 없으면 실패한다. 경고: 이는 컬렉션을 절반만 업데이트된 상태로 남겨둘 수 있다.&lt;br /&gt;
&lt;br /&gt;
====removeAll: aCollection ifAbsent: aBlock====&lt;br /&gt;
&lt;br /&gt;
aCollection 내에서 각 객체를 제거하고 aCollection을 응답하라; 일부 요소를 찾을 수 없다면 aBlock로 전달하라. &lt;br /&gt;
&lt;br /&gt;
====removeAllSuchThat: aBlock====&lt;br /&gt;
&lt;br /&gt;
aBlock이 true를 리턴하는 모든 객체를 수신자로부터 제거하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection: 보관하기===&lt;br /&gt;
&lt;br /&gt;
====storeOn: aStream====&lt;br /&gt;
&lt;br /&gt;
수신자로 컴파일하는 스몰토크 코드를 aStream 상에 보관하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Collection: 컬렉션 검사하기===&lt;br /&gt;
&lt;br /&gt;
====capacity====&lt;br /&gt;
&lt;br /&gt;
증가하기 전에 수신자가 보관할 수 있는 요소의 개수를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====identityIncludes: anObject====&lt;br /&gt;
&lt;br /&gt;
우리가 anObject 객체를 포함하는지 여부를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====includes: anObject====&lt;br /&gt;
&lt;br /&gt;
우리가 anObject 객체를 포함하는지 여부를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====includesAnyOf: aCollection====&lt;br /&gt;
&lt;br /&gt;
우리가 aCollection 내 어떤 객체라도 포함하는지 여부를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====isEmpty====&lt;br /&gt;
&lt;br /&gt;
우리가 (여전히) 빈 상태인지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====isSequenceable====&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#35;at:/-#at:put: 를 이용해 숫자형 색인이 수신자에게 접근 가능한지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====notEmpty====&lt;br /&gt;
&lt;br /&gt;
우리가 최소 하나의 객체를 포함하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====occurrencesOf: anObject====&lt;br /&gt;
&lt;br /&gt;
우리가 포함하는 anObject의 발생 수를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====size====&lt;br /&gt;
&lt;br /&gt;
우리가 포함하는 객체 수를 응답하라. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GnuSmalltalkUsersGuide]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>