其他运算符

其他运算符

运算符 描述
Define x:=y 用于创建节点定义。通常,您在设计时通过在公式窗口中输入定义来创建节点定义。但是,您也可以在运行时通过使用 Define 运算符执行语句来创建其他定义。操作数 x 是带有可选输入参数集的节点名。操作数 y 是节点定义。例如:
Procedure {x,y,...} 通过将一组表达式括在大括号中来定义要对其进行求值。大括号还会创建一个新的块作用域,防止在大括号内声明的变量干扰其他函数中的变量。DScript 按如下方式对表达式 {x,y,z} 求值。首先,DScript 创建一个新的块作用域。接下来,它按顺序对表达式 x、y 和 z 求值。最后,DScript 删除由表达式 x、y 或 z 的副作用创建的任何变量或新节点。
Parentheses (x,y,...) DScript 对括号内的一组表达式的处理与对大括号内的表达式相同,不同之处在于不会创建新的块作用域,并且在括号内创建的新变量会持续存在。
Function Call x() 将函数指针赋给变量后,您可以通过在变量名后放置一对括号来显式调用该函数。例如:
Do Primitive @x 只需创建同名节点,即可替换 DScript 中的原语。您可以通过在原语名称前放置 & 符号来确保调用函数的原语版本。例如:
Value Of ?x 节点既有定义又有计算值。Value Of 运算符返回节点的值,而不执行其定义。例如,以下节点提示用户输入信息。 Age:=asknumber("How old are you?") 如果 Age 已经求值,则表达式 ?Age 返回用户之前的回答。如果 Age 尚未求值,则 ?Age 返回 null。将此与不带问号的表达式 Age 对比。在这种情况下,如果 Age 已经求值,则返回用户之前的响应(就像 ?Age 一样)。但是,如果 Age 尚未求值,引用其名称会导致其定义被激活,并提示用户响应。Value Of 运算符只是阻止节点的定义被激活。
typeof typeof x 用于确定 x 中包含的数据类型。Typeof 返回一个文本字符串,其值为 "number"、"string"、"boolean"、"object" 等,如下表所示。请注意,列表被 typeof 归类为 "object"。
void void x 对表达式 x 求值,然后丢弃其值。此运算符在 DScript 中几乎没有实际应用。支持它主要是为了保持与 JavaScript 的兼容性。
Conditional x?y:z 执行简单的 if/then/else 构造。首先,对表达式 x 求值。如果为 true,则对 y 求值;否则对 z 求值。返回 y 或 z 的值(以被求值者为准)。
Accumulate x->y 用于构建决策树。Accumulate 执行以下步骤: 1. 对 x 求值并将其值加到全局累加器中。 2. 对 y 求值。 3. 从全局累加器中减去 x 的值。 4. 返回 y 的值。 如果没有为 y 提供表达式,则 Accumulate 返回全局累加器的值。