Bezeichnung
Eval -- wertet den Zeichenkettenausdruck aus (V5.0)
Übersicht
val = Eval(expr$[, table])
Beschreibung
Eval() wertet den numerischen Ausdruck in expr$ aus und gibt das Ergebnis als Zahl zurück. Die Zeichenfolge in expr$ kann alle Operatoren beinhalten, die von Hollywood unterstützt wird. Ausnahme ist der Verkettungsoperator für Zeichenfolgen, weil dieser Operator eine Zeichenfolge erfordert, während der Befehl Eval() nur mit Zahlen funktioniert. Sie können auch bestimmte Teilausdrücke priorisieren, in dem Sie Klammern verwenden. Eval() verwendet die gleichen Prioritäten wie Hollywood selbst. Siehe Prioritäten der Operatoren für eine Liste aller Hollywood-Operatoren und ihre Prioritäten.

Zahlen innerhalb expr$ können dezimal oder hexadezimal angegeben werden. Wenn Sie das Hexadezimalformat verwenden, müssen Sie der Nummer als Präfix das Dollarzeichen ($) verwenden.

Es ist auch möglich, Variablen im Ausdruck zu verwenden. Ihre Skript-Variablen stehen jedoch Eval() nicht automatisch zur Verfügung. Um Ihre Skriptvariablen für Eval() verfügbar zu machen, müssen Sie den Tag MapVariables im optionalen Tabellenargument auf True setzen. Alternativ können Sie auch private Variablen für Eval() definieren, indem Sie den Tag Variables im optionalen Tabellenargument setzen. Wenn sowohl Skriptvariablen als auch private Variablen verwendet werden, haben die privaten Vorrang.

Hier ist eine Liste aller Tags, die derzeit von der optionalen Tabelle unterstützt wird:

Variables:
Dieser Tag wird verwendet, um Eval() eine Reihe von Variablen zu übergeben, auf die Sie in Ihrem Ausdruck zugreifen können. Sie müssen hier ein Array übergeben, die aus einer Anzahl von Name und Value-Paaren besteht. In Name muss der gewünschte Namen für die Variable und in Value muss der enthalten Wert sein, mit der die Variable initialisiert werden soll. Die Semantik des Variablennamen muss die gleiche wie in Hollywood sein, das heißt es dürfen nur alphanumerische Zeichen und nur die Sonderzeichen "$", "!" und "_" verwendet werden. Das erste Zeichen darf keine Zahl sein. Siehe unten für ein Beispiel.

MapVariables:
Wenn dieser Tag auf True gesetzt ist, berücksichtigt Eval() bei der Auswertung des Ausdrucks auch normale Hollywood-Variablen. Beachten Sie, dass die Variablen nur numerische Variablen sein dürfen und die im Tag Variables (siehe oben) deklarierten Vorrang haben. Die Voreinstellung ist False. (V9.0)

NoDeclare:
Wenn dieser Tag auf True gesetzt ist, werden alle nicht deklarierten Variablen im Ausdruck als 0 behandelt. Standardmäßig gibt Eval() einen Fehler aus, wenn versucht wird, auf eine nicht deklarierte Variable zuzugreifen. Die Voreinstellung ist False. (V9.0)

Eingaben
expr$
der zu berechende Ausdruck
table
optional: Tabelle mit weiteren Optionen
Rückgabewerte
val
Resultat
Beispiel
v = Eval("5*(6+1)")
Gibt 35 zurück.


v = Eval("var1*(var2+1)", {Variables = {{Name = "var1", Value = 5},
         {Name = "var2", Value = 6}}})
Der obige Code macht das gleiche wie das erste Beispiel, verwendet aber Variablen anstelle von direkten Zahlen.


var1 = 5
var2 = 6
v = Eval("var1*(var2+1)", {MapVariables = True})
Der obige Code macht dasselbe wie die ersten beiden Beispiele, ordnet jetzt jedoch die Hollywood-Variablen var1 und var2 dem Variablenraum von Eval() zu.

Navigation zeigen