Hey Chewie,
nimm mein Beispiel von oben (#21) es zeigt eine "Schleife", die die "Zahlen" 1 bis 5 ausgibt.
block ist ein Objekt, dass die Nachricht
value: aValue empfangen kann. Es ist über den Konstruktor
so angelegt, dass es bei der Varbeitung der Nachricht dem Parameter
aValue die Nachricht
print schickt. Gültig ist daher der Code
bei dem das Objekt
self letzlich die Nachricht
print gesendet wird.
Mit der Nachricht
to: aNumber erzeugt ein Zahlenobjekt eine Sequenz mit den Intervallgrenzen des eigenen und dem übergebenen Wert. Diese Sequenz ist ein OBjekt eines Nachfolgers von
Collection, einer Klasse, deren Exemplare die Nachricht
do: aBlock verstehen. Wann immer eine Collection diese Nachricht abarbeitet, wird
aBlock nacheinander jedes Element der Collection mit
value: aValue übergeben.
Also
Code:
aBlock := [:i | i print].
aNumber := 1;
anotherNumber := 5;
aSequence := aNumber to: anotherNumber;
aCollection := aSequence;
aCollection do: aBlock;
bzw
Code:
(aNumber to: anotherNumber) do: aBlock
oder
dieses Beispiel orientiert sich an der Sprache Smalltalk.