Seite 1 von 1

Falsche Ersetzung der Laufvariable in 'for'-Schlaufen

Verfasst: 03 Feb 2010, 13:31
von embl-structures
Hallo,

Der folgende Code:

Code: Alles auswählen

[Aktionen]
defstringlist @versionen
set           @versionen = CreateStringList ("A")

defvar        $version
set           $version = "B"

for $v in @versionen do Message "v =" + "$v" + "; version = " + $version
resultiert in der Fehlermeldung
Sektion Aktionen (Kommando in Zeile 9):
for $v in @versionen do Message "v =" + "$v" + "; version = " + $version
Aersion kein zulaessiger String-Ausdruck
Waehrend

Code: Alles auswählen

[Aktionen]
defstringlist @versionen
set           @versionen = CreateStringList ("A")

defvar        $version
set           $version = "B"

for $v in @versionen do Message "v =" + "$v" + "; version = " + "$version"
in der Message
v = A; version = Aersion
resultiert. "$v" wird offensichtlich auch im Ausdruck "$version" durch den Wert der Laufvariablen ersetzt. Trotzdem im Handbuch steht
Vorsicht: Die Ersetzung ist (wie bei Systemkonstanten) rein textuell
sollte man davon ausgehen koennen, dass $v nur durch den entsprechenden Wert ersetzt wird, wenn es allein oder in Anfuehrungszeichen steht, nicht jedoch in jeglichen Strings. Falls doch, sollte man das im Handbuch sehr deutlich herausstreichen, denn als Laufvariablen nimmt man typischerweise kurze Namen, was die Kollisionswahrscheinlichkeit mit einem bereits bestehenden Variablennamen erhoeht.

Gruss
frank

Re: Falsche Ersetzung der Laufvariable in 'for'-Schlaufen

Verfasst: 17 Feb 2010, 12:48
von embl-structures
Kann das jemand bestaetigen?

frank