第四章 IRIS 编程简介 - Macros
2023-08-20 本文已影响0人
Cache技术分享
第四章 IRIS 编程简介 - Macros
Macros
ObjectScript
还支持定义替换的宏。定义可以是一个值、整行代码或(使用 ##continue
指令)多行。使用宏来确保一致性。例如:
#define StringMacro "Hello, World!"
write $$$StringMacro
Include Files
可以在例程中定义宏,并稍后在同一例程中使用它们。更常见的是,在中心位置定义它们。为此,需要创建并使用包含文件。包含文件定义宏并且可以包含其他包含文件。
这些代码元素如何协同工作
可以混合使用 ObjectScript
、Python
、 SQL
、类定义、宏、例程等的原因是 IRIS
不直接使用编写的代码。相反,当编译代码时,系统会生成它使用的较低级别的代码。这是由 ObjectScript
引擎使用的 ObjectScript
的 OBJ
代码,以及由 Python
引擎使用的 Python
的 PYC
代码。
有多个步骤。无需详细了解这些步骤,但最好记住以下几点:
- 对于除
Python
方法之外的所有元素,类编译器将类定义和ObjectScript
代码处理为INT
代码。Python
代码被处理成PY代码。
在某些情况下,编译器会生成并保存您不应编辑的其他类。例如,当编译定义 Web
服务和 Web
客户端的类时,就会发生这种情况。
类编译器还为每个类生成类描述符。系统代码在运行时使用它。
- 对于
ObjectScript
代码,预处理器(有时称为宏预处理器或MPP
)使用包含文件并替换宏。它还处理例程中的嵌入式SQL
。
这些更改发生在临时工作区中,并且代码不会更改。
- 其他编译器为例程创建
INT
代码。 -
INT
代码和PY
代码是中间层,其中通过直接Global
访问来处理对数据的访问。该代码是人类可读的。 INT
代码用于生成OBJ
代码,PY代码用于生成PYC
代码。IRIS
虚拟机使用此代码。一旦将代码编译为OBJ
和PYC
代码,代码执行就不再需要INT
和PY
例程。- 编译类后,可以将它们置于部署模式。
IRIS
有一个实用程序,可以删除给定类的类内部和中间代码;可以在部署应用程序时使用此实用程序。
如果检查 IRIS
系统类,可能会发现某些类看不到,因为它们处于部署模式。
注意:所有类定义和例程都与生成的代码存储在同一 IRIS
数据库中。这一事实使代码更易于管理。 IRIS
提供了一组强大的源代码控制挂钩, 开发人员已使用这些挂钩多年。也可以使用这些挂钩。