第五章 ObjectScript 标识符的规则和指南

文章目录

第五章 ObjectScript 标识符的规则和指南

本页介绍了 ObjectScript 代码和类中的标识符规则,并提供了避免名称冲突的指南。请注意,ObjectScript 没有保留字,因此如果使用命令作为标识符,结果在语法上是正确的,但代码也可能会让任何阅读它的人感到困惑。

局部变量名称规则

对于局部变量的名称,ObjectScript 中适用以下规则:

  • 第一个字符必须是字母或百分号 (%)。

如果名称以 % 开头,请使用 zZ 作为其后的下一个字符。

  • 其余字符必须是字母或数字,包括 ASCII 255 以上的字母字符(Unicode 字母)。
  • 名称区分大小写。
  • 该名称的前 31 个字符必须是唯一的(在适当的上下文中)。

变量的任何下标都不计入此计数。

要避免的局部变量名

避免对局部变量使用以下名称:

  • SQLCODE

避免在 SQL 可能运行的任何上下文中使用 SQLCODE 作为变量名称。

  • IO, IOF, IOBS, IOM, IOSL, IOT, IOST, IOPAR, MSYS, POP, RMSDF

不要在使用 ^%IS 实用程序的上下文中使用这些变量名称(实际上,这种情况很少见)。

Global名称规则

对于Global的名称,适用以下规则:

  • 第一个字符必须是脱字号 (^),下一个字符必须是字母或百分号 (%)。对于Global名称,字母被定义为 ASCII 65ASCII 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*(文档中提到的设置节点除外)
  • ^mqhSQL 查询历史记录)
  • ^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 中的自定义项)
相关推荐
xiaoshuaishuai8几秒前
C# 封装与继承
开发语言·c#
江畔柳前堤10 分钟前
agent面试题
数据库·人工智能·opencv·数据挖掘·语音识别·agent
十月的皮皮11 分钟前
C语言学习笔记20260614-数组奇偶数调整3种方法
c语言·笔记·学习
星辰_mya11 分钟前
限流、漏斗桶和令牌桶的区别
java·开发语言·面试·架构·高并发
Shadow(⊙o⊙)12 分钟前
信号1.0,信号概念、signal()处理、前后台进程、闹钟设置、初识信号三张表。
linux·运维·服务器·开发语言·c++
J.P.August15 分钟前
ASM故障组配置实现RAC双活冗余
数据库·oracle
怪我冷i17 分钟前
人工智能的数学基础——学习笔记
人工智能·笔记·学习
(Charon)18 分钟前
【C++ 面试高频:STL 容器 vector、map、unordered_map 总结】
开发语言·c++·面试
我是一颗柠檬18 分钟前
【Java项目技术亮点】滑动窗口限流算法
java·开发语言·算法
乐兮创想 小林20 分钟前
企业官网 i18n 多语言工程实践:URL 策略、hreflang、内容管理与多语言 SEO
数据库·网站建设·企业官网·北京网站建设公司