val = Eval(expr$[, table])
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:
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:
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:
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)
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.