<?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_105</id>
	<title>GnuSmalltalkUsersGuide:BaseChapter 105 - 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_105"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_105&amp;action=history"/>
	<updated>2026-05-02T01:28:39Z</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_105&amp;diff=4093&amp;oldid=prev</id>
		<title>Onionmixer: GSUG MappedCollection 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_105&amp;diff=4093&amp;oldid=prev"/>
		<updated>2014-01-27T15:15:16Z</updated>

		<summary type="html">&lt;p&gt;GSUG MappedCollection 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;MappedCollection&lt;br /&gt;
&lt;br /&gt;
==MappedCollection==&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;슈퍼클래스: Collection&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;범주: 컬렉션-Keyed&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:나는 간접적으로 이름에 따라 색인된 객체의 컬렉션을 나타낸다. 관련 컬렉션에는 두 가지가 있다: 도메인과 맵. 맵은 외부이름과 색인을 도메인으로 매핑하고, 실제 연관을 포함한다. 올바로 작동하려면 도메인은 SequenceableCollection의 서브클래스의 인스턴스여야 하고, 맵은 Dictionary의 인스턴스이거나 SequenceableCollection의 서브클래스의 인스턴스여야 한다.&amp;lt;BR&amp;gt;나의 사용 예는 요소들이 색인된 Dictionary의 구현을 들 수 있겠다. 도메인은 n개의 요소가 있는 SequenceableCollection일 것이고, 맵은 도메인 내의 색인으로 각 키를 연관시키는 Dictionary일 것이다. 키별로 접근하기와 열거 실행 등을 들 수 있겠다. 나의 인스턴스를 요청할 수도 있다; 색인별로 접근하려면 도메인에 직접 접근해야 할 것이다.&amp;lt;BR&amp;gt;또 다른 예는 단일 n*m Array로 구현된 행렬로의 row 또는 column 접근을 구현하는 것을 들 수 있겠다: Array는 도메인인 반면 맵은 Interval이 해당할 것이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MappedCollection 클래스: 인스턴스 생성===&lt;br /&gt;
&lt;br /&gt;
====collection: aCollection map: aMap====&lt;br /&gt;
&lt;br /&gt;
주어진 도메인(aCollection)과 맵을 이용해 새 MappedCollection을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====new====&lt;br /&gt;
&lt;br /&gt;
해당 메서드는 사용해선 안 된다; 대신 #collection:map: 을 이용해 MappedCollection을 생성하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===MappedCollection: 기본===&lt;br /&gt;
&lt;br /&gt;
====add: anObject====&lt;br /&gt;
&lt;br /&gt;
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.&lt;br /&gt;
&lt;br /&gt;
====at: key====&lt;br /&gt;
&lt;br /&gt;
주어진 키에서 객체를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====at: key put: value====&lt;br /&gt;
&lt;br /&gt;
주어진 키에서 값을 보관하라.&lt;br /&gt;
&lt;br /&gt;
====atAll: keyCollection====&lt;br /&gt;
&lt;br /&gt;
주어진 키만 포함하는 새 MappedCollection를 응답하라. 새 MappedCollection은 맵의 타입에 따라 keyCollection 또는 키에 대한 연속 정수를 사용할지도 모른다. 그 중 하나라도 맵에서 발견되지 않으면 실패한다.&lt;br /&gt;
&lt;br /&gt;
====collect: aBlock====&lt;br /&gt;
&lt;br /&gt;
맵과 키가 같아서 키로 접근 시 수신자 내 키에서 접근 가능한 값을 aBlock을 통해 전달하여 얻는 값을 생성하는 Collection을 응답하라. 결과는 굳이 또 다른 MappedCollection일 필요가 없다.&lt;br /&gt;
&lt;br /&gt;
====contents====&lt;br /&gt;
&lt;br /&gt;
수신자의 값으로 된 백(bag)을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====copyFrom: a to: b====&lt;br /&gt;
&lt;br /&gt;
a 번째부터 b 번째까지 수신자 내 항목을 모두 포함하는 새 컬렉션을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====do: aBlock====&lt;br /&gt;
&lt;br /&gt;
각 객체마다 aBlock을 평가하라. &lt;br /&gt;
&lt;br /&gt;
====domain====&lt;br /&gt;
&lt;br /&gt;
수신자의 도메인을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====keys====&lt;br /&gt;
&lt;br /&gt;
해당 컬렉션으로 접근 시 사용 가능한 키를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====keysAndValuesDo: aBlock====&lt;br /&gt;
&lt;br /&gt;
aBlock을 평가하고 두 개의 인자를 전달하되 하나는 해당 컬렉션으로 접근 시 사용 가능한 키이고 나머지 하나는 값으로 전달한다.&lt;br /&gt;
&lt;br /&gt;
====keysDo: aBlock====&lt;br /&gt;
&lt;br /&gt;
해당 컬렉션에 접근 시 사용 가능한 키에 aBlock을 평가하라.&lt;br /&gt;
&lt;br /&gt;
====map====&lt;br /&gt;
&lt;br /&gt;
수신자의 맵을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====reject: aBlock====&lt;br /&gt;
&lt;br /&gt;
aBlock이 false를 리턴하는 도메인 내 객체를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====select: aBlock====&lt;br /&gt;
&lt;br /&gt;
aBlock이 true를 리턴하는 도메인 내 객체를 응답하라.&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;
&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>