文章
· 八月 24, 2023 阅读大约需 2 分钟

第八章 ObjectScript - 变量的可用性和范围

第八章 ObjectScript - 变量的可用性和范围

变量的可用性和范围

ObjectScript 支持以下程序流程,(在大多数方面)与其他编程语言支持的程序流程类似:

  1. 用户可能从用户界面调用方法。
  2. 该方法执行一些语句,然后调用另一个方法。
  3. 该方法定义了局部变量 ABC

变量 ABC 在此方法的范围内。它们对于该方法是私有的。

该方法还定义了Global ^D

  1. 第二个方法结束,控制返回到第一个方法。
  2. 第一个方法恢复执行。此方法不能使用不再定义的变量 AB 和 C。它可以使用^D,因为该变量立即保存到数据库中。

变量作用域总结

有几个因素控制变量在定义它的方法之外是否可用。在讨论这些之前,有必要指出以下环境细节:

  • IRIS 实例包含多个命名空间,其中包括多个系统命名空间,可能还包括定义的多个命名空间。

命名空间是任何代码运行的环境。

  • 可以在命名空间中同时运行多个进程。在典型的应用程序中,许多进程同时运行。

下表总结了可用变量的位置:

变量可用性,按变量类型细分... 在定义它的方法之外(但在同一进程中) 在同一命名空间的其他进程中 在同一 IRIS 实例内的其他命名空间中
局部变量,私有范围* No No No
局部变量,公共作用域 Yes No No
局部百分比变量 Yes No No
全局变量Global(不是百分比) Yes Yes 除非Global映射允许这样做
Global百分比变量 Yes Yes Yes

*默认情况下,方法中定义的变量是该方法私有的,如前所述。此外,在方法中,可以将变量声明为公共变量,尽管这种做法不是首选。请参阅公共列表。

每个命名空间都有用于特定目的的默认数据库,并且可以具有允许访问其他数据库的映射。因此,Global可用于多个命名空间,即使它不是Global百分比变量。

讨论 (0)1
登录或注册以继续