Falsche Ersetzung der Laufvariable in 'for'-Schlaufen

Antworten
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

Falsche Ersetzung der Laufvariable in 'for'-Schlaufen

Beitrag 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
Benutzeravatar
embl-structures
Beiträge: 327
Registriert: 13 Jan 2010, 18:41
Wohnort: Heidelberg
Kontaktdaten:

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

Beitrag von embl-structures »

Kann das jemand bestaetigen?

frank
Antworten