第六十四章 符号概览
Caret (^)
^abcdef
^%abcdef
有以下三种可能:
^abcdef或^%abcdef是Global。^abcdef或^%abcdef是LOCK命令的参数。在这种情况下,^abcdef或^%abcdef是锁名称,并保存在锁表中(在内存中)。abcdef或%abcdef是一个例程。插入符号不是名称的一部分,而是调用例程的语法的一部分。
在随意使用中,很常见的是引用一个例程,就好像它的名称包含一个初始插入符号一样。因此,可能会看到有关 ^abcdef 例程的注释。通常,可以根据上下文判断引用是对全局还是对例程。锁名称仅出现在 LOCK 命令之后;它们不能用于任何其他情况。
^$abcdef
^$|"ghijkl"|abcdef
其中每一个都是结构化系统变量,它提供有关Global、作业、锁或例程的信息。
GLOBAL, LOCK, or $ROUTINE`.
ghijkl 是命名空间名称。
IRIS 将信息存储在以下系统变量中:
-
^$GLOBAL -
^$JOB -
^$LOCK -
$ROUTINE
^||abcdef
-
^|"^"|abcdef -
^["^"]abcdef -
^["^",""]abcdef
其中每一个都是进程私有global,是一种临时存储大数据值的机制。 IRIS 在内部使用一些,但不提供任何供公众使用。可以定义和使用自己的进程私有global。
^|XXX|abcdef
-
^|XXX|%abcdef -
^[XXX]abcdef -
^[XXX]%abcdef
其中每一个都是扩展引用——对另一个命名空间中的global 或 routine 的引用。可能性如下:
^abcdef或^%abcdef是另一个命名空间中的global。abcdef或%abcdef是另一个命名空间中的例程。
XXX 组件表示命名空间。这是带引号的字符串或不带引号的字符串。
^abc^def
这是一个隐含的命名空间。
^^abcdef
这是一个隐含的命名空间。a