03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

9.4 Sammler mit direktem Zugriff 189<br />

Um eine Instanz der Klasse “Array” einzurichten, kann die Klassen-Methode “new:”<br />

verwendet werden.<br />

ˆ “new:”:<br />

Als Ergebnis-Objekt der Keyword-Message “new:” resultiert ein Array mit<br />

Pseudovariablen “nil”, deren Anzahl durch diejenige ganze Zahl bestimmt ist,<br />

die als Argument innerhalb der Message “new:” aufgeführt ist.<br />

Hinweis: Wird einer Instanz der Klasse “Array” die Message “do:” geschickt, so<br />

ist zu beachten, daß die Pseudovariable “nil” als Objekt auftreten kann.<br />

Zum Beispiel wird durch die Zuweisung<br />

VarArray := Array new: 3<br />

ein Array eingerichtet, in dem das Objekt “nil” in dreifacher Ausführung eingetragen<br />

ist.<br />

Für die in einem Array gesammelten Objekte ist eine Reihenfolge festgelegt. Dabei<br />

korrespondiert jedes Objekt mit einem ganzzahligen Index. Es gibt ein erstes Objekt,<br />

dem die Zahl “1” als Index zugeordnet ist, ein zweites Objekt, mit dem die<br />

Zahl “2” als Index korrespondiert, usw.<br />

Sollen z.B. die Zeichenketten ’eins’, ’zwei’ und ’drei’ in “VarArray” – in dieser Reihenfolge<br />

– gesammelt werden, so läßt sich dies wie folgt erreichen:<br />

VarArray at:1 put:’eins’; at:2 put:’zwei’; at:3 put:’drei’<br />

Dabei haben wir die Basis-Methode “at:put:” aus der Klasse “Object” verwendet,<br />

mit der sich Objekte in Sammlern eintragen lassen.<br />

ˆ “at:put:”:<br />

Das als Argument von “put:” angegebene Objekt wird an der Index-Position,<br />

die durch das Argument von “at:” bestimmt ist, in demjenigen Array gesammelt,<br />

der als Empfänger-Objekt der Keyword-Message “at:put:” aufgeführt<br />

ist. Als Ergebnis-Objekt resultiert das hinter “put:” angegebene Argument.<br />

Alternativ zum bisherigen Vorgehen können wir die zu sammelnden Werte bereits<br />

bei der Instanziierung eines Arrays festlegen, indem wir in unserem Fall die folgende<br />

Zuweisung ausführen lassen:<br />

VarArray := #(’eins’ ’zwei’ ’drei’)<br />

In dieser Situation spricht man von einem Array-Literal, da in dem der globalen<br />

Variablen “VarArray” zugeordneten Array die drei Literale ’eins’, ’zwei’ und ’drei’<br />

gesammelt werden.<br />

ˆ Grundsätzlich läßt sich ein Array durch die Angabe eines Array-Literals erzeugen.<br />

Dieses Literal muß durch das Symbolzeichen “#” eingeleitet werden.<br />

Diesem Symbolzeichen müssen ein oder mehrere Literale folgen, die durch die<br />

Klammer “(” eingeleitet und durch die Klammer “)” abgeschlossen werden.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!