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 -