特殊变量
特殊变量是系统维护的变量。它们也称为系统变量,但在这里称为特殊变量,以避免与结构化系统变量混淆。
特殊变量名称以美元符号($)开头。可以将它们与函数区分开来,因为它们后面没有括号并且不带参数。特殊变量名称不区分大小写。许多特殊的变量名可以缩写。在每个特殊变量的摘要中,首先显示全名语法,并在其下方显示缩写名称(如果存在)。
从历史上看,特殊变量具有标量值。系统会自动更新这些特殊变量,以反映操作环境的各个方面。例如,$IO特殊变量包含当前设备的ID。 $JOB特殊变量包含当前作业的ID。
尽管可以设置一些特殊变量,但大多数都是只读的。除了此只读约束之外,可以像对待其他任何变量一样对待特殊变量。例如,可以在表达式中引用特殊变量,并将其当前值分配给另一个(用户定义的)变量。
任何特定于实现的特殊变量形式都标有支持该形式的平台的缩写(Windows或UNIX®)。所有平台均支持未标记平台缩写的任何形式。
结构化系统变量
结构化系统变量名或SSVN是非标量系统变量,其组织方式类似于全局变量。SSVNs允许编写可检索有关系统数据信息的可移植程序。相同的ObjectScript代码可以使用结构化系统变量从任何InterSystems IRIS®实现中检索系统数据信息。
每个SSVN都有一个结构,其中下标值为以下任一项:
- Entity identifiers 实体标识符
- Literals 字符
- Attribute keywords. 属性关键字
可以通过提供作为标识符的下标和属性节点的值来提供有关实体的信息。
SSVN使用插入符号和美元符号(^$)作为标准前缀,其后为:
- 所需的名称空间的可选(扩展语法)规范
- 指定的名称列表之一。
然后,在名称后加上一个或多个括号。这些表达式称为下标。语法如下:
^$[|namespace|] ssvn_name(expression)
通常,不能将SET和KILL命令用于结构化系统变量,因为它们不一定具有数据值。结构化系统变量提供的信息通常是特定下标值的存在。在大多数情况下,可以使用$DATA,$ORDER和$QUERY函数检查下标值。
InterSystemsIRIS®支持以下结构化的系统变量:
- ^$GLOBAL 提供有关全局变量和进程专用全局变量的信息。
- ^$JOB 提供InterSystems IRIS流程(JOB)信息。
- ^$LOCK 提供锁名信息。
- ^$ROUTINE 提供例行信息。
以下各节说明了每个SSVN的含义及其下标的用法:
每个描述都标识特定的结构化系统变量允许使用哪些功能。每个描述都包含一个或多个示例,这些示例关于如何使用结构化系统变量作为$DATA,$ORDER和$QUERY函数的参数来扫描系统表信息。
符号与缩写
书写程序过程当中所有的符号与缩写的含义。
JSON
序列化,反序列化,很方便的使用,以及超长字符串的JSON解决方案
Android
结合目前谷歌推荐,市面上最流行的移动安卓端的解决方案Kotlin + Jetpack + Mvvm。
经过两个月的连载 《Caché 变量大全》 等系列终于连载完毕。主要把目前相关能系统变量以及结构化变量,符号缩写,Json的使用做了全面的讲解。通读此专题可以全面提升系统变量的用法和一些稀有功能的了解。本专栏是目前比较全的的变量的讲解。而且还能学到一些较前言的移动端开发知识。对于有一些问题的分析难免会有纰漏。实例中的解决方法也不是尽善尽美 ,感兴趣的朋友可以思考实现完成之后留言一起讨论。也希望发现其他问题的朋友及时向笔者反馈。
- 公众号:技术理科直男