文章目录
-
第五章 ObjectScript 标识符的规则和指南 - 局部变量名称规则
- 要避免的局部变量名
- `Global`名称规则
- 要避免的全局变量名称
- `Global`百分比
- 非百分比`Global`
第五章 ObjectScript 标识符的规则和指南
本页介绍了 ObjectScript 代码和类中的标识符规则,并提供了避免名称冲突的指南。请注意,ObjectScript 没有保留字,因此如果使用命令作为标识符,结果在语法上是正确的,但代码也可能会让任何阅读它的人感到困惑。
局部变量名称规则
对于局部变量的名称,ObjectScript 中适用以下规则:
- 第一个字符必须是字母或百分号 (
%)。
如果名称以 % 开头,请使用 z 或 Z 作为其后的下一个字符。
- 其余字符必须是字母或数字,包括
ASCII 255以上的字母字符(Unicode字母)。 - 名称区分大小写。
- 该名称的前
31个字符必须是唯一的(在适当的上下文中)。
变量的任何下标都不计入此计数。
要避免的局部变量名
避免对局部变量使用以下名称:
- SQLCODE
避免在 SQL 可能运行的任何上下文中使用 SQLCODE 作为变量名称。
IO,IOF,IOBS,IOM,IOSL,IOT,IOST,IOPAR,MSYS,POP,RMSDF
不要在使用 ^%IS 实用程序的上下文中使用这些变量名称(实际上,这种情况很少见)。
Global名称规则
对于Global的名称,适用以下规则:
- 第一个字符必须是脱字号 (
^),下一个字符必须是字母或百分号 (%)。对于Global名称,字母被定义为ASCII 65到ASCII 255范围内的字母字符。不允许使用超出ASCII 255的字符。 - 其余字符必须是字母或数字(有一个例外,在下一个项目符号中注明)。
Global的名称可以包含一个或多个句点 (.) 字符,但不能作为第一个或最后一个字符。- 名称区分大小写。
- 该名称的前
31个字符必须是唯一的(在适当的上下文中)。脱字符号不计入此计数。也就是说,Global的名称的前32个字符必须是唯一的,包括脱字符号。
变量的任何下标都不计入此计数。
- 在
IRISSYS数据库中,为自己保留除以^z、^Z、^%z和^%Z开头的所有Global名称。
在所有其他数据库中,保留以 ^IRIS 和 ^%IRIS 开头的所有全局名称
要避免的全局变量名称
当创建数据库时,IRIS 会使用一些Global对其进行初始化以供其自己使用。此外,创建的每个命名空间都包含到系统Global的映射,包括可写系统数据库中的Global节点。
Global百分比
百分比Global在所有命名空间中都可用。以下规则适用:
- 可以使用以
^%z或^%Z开头的名称来设置、修改或kill自己的Global - 不应设置、修改或终止
^%SYS(文档中所述的设置节点除外) - 除上述例外情况外,不应设置、修改或
kill名称以^%开头的Global
非百分比Global
为了避免覆盖系统Global,请勿在任何命名空间中设置、修改或kill以下Global:
^CacheTemp*(保留供某些版本的IRIS使用)^DeepSee.*(限制仅适用于在其中使用IRIS Analytics的命名空间)^Ens*(限制仅适用于启用互操作性的命名空间;请参阅互操作性产品简介)^ERRORS^HS(限制适用于HealthShare命名空间)^InterSystems.Sequences(限制仅适用于在其中使用InterSystems IRIS Hibernate Dialect的命名空间)^IRIS*(保留供InterSystems使用)^IS.*(保留供InterSystems IRIS分片使用)^ISC*(文档中提到的设置节点除外)^mqh(SQL查询历史记录)^mtemp*^OAuth2(限制适用于HealthShare命名空间)^OBJ.GUID(文档中注明的除外)^OBJ.DSTIME^OBJ.JournalT^odd*(类定义文件)^rBACKUP^rINC(包含include files inc文件)^rINCSAVE^rINDEX^rINDEXCLASS^rINDEXEXT^rINDEXSQL^rMAC(包含MAC代码mac文件)^rMACSAVE^rMAP^rOBJ(存储OBJ代码obj文件)^ROUTINE(存储routines,int文件)^SchemaMap(限制适用于HealthShare命名空间)^SPOOL(限制仅适用于在其中使用IRIS假脱机的命名空间;请参阅《I/O设备指南》中的假脱机设备)^SYS(文档中提到的设置节点除外)^z*和^Z*(保留供使用,IRISSYS数据库除外;请参阅IRISSYS中的自定义项)










