Re: [Squeak-ev] Re: "Warnung" bei rekursiver Ausführung eines Blocks

Bert Freudenberg bert at freudenbergs.de
Mon Okt 17 12:22:16 UTC 2011


On 17.10.2011, at 13:15, Michael Paap wrote:

> Am 17.10.2011 13:02, schrieb Bert Freudenberg:
> 
>> Der Workspace deklariert Variablen automatisch bei der ersten
>> Verwendung, ohne Warnung.
> 
> Ja, das ist prinzipiell schon klar.
> 
> Ich bin auch nur auf die Warnung gestoßen, weil wir dasselbe Beispiel
> für mehrere Smalltalk-Systeme verwenden wollten, und beispielsweise
> Smalltalk Express die explizite Deklaration verlangt.
> 
> Mir erscheint es nur ein wenig seltsam, dass mich Squeak /nicht/ warnt,
> wenn ich die Variable weder deklariere noch initialisiere, aber meint,
> mich warnen zu müssen, wenn ich sie explizit deklariere, aber nicht
> initialisiere.
> 
> Falls der dahinterstehende Gedankengang sein sollte
> 
> "Wenn der User die Variable schon unnötigerweise explizit deklariert,
> wollte er sie sicher auch initialisieren und hat das wohl vergessen."
> 
> dann kann ich das nicht so ganz nachvollziehen. ;-)


Aus Sicht des Compilers sind die Workspace-Variablen global. Somit brauchen sie weder deklariert noch initialisiert werden.

Die per senkrechter Striche deklarierten Variablen sind temporär. Diese sollten vor Verwendung initialisiert werden, deswegen die Warnung.

- Bert -