文章
· 九月 4, 2023 阅读大约需 3 分钟

第十八章 ObjectScript - 使用例程

第十八章 ObjectScript - 使用例程

例程

可以将例程视为 ObjectScript 程序。例程可以从头开始编写,也可以在编译类时自动生成。

Procedures, Functions, and Subroutines 过程、函数和子程序

ObjectScript 例程中,标签定义以下代码单元之一的起点:

  • Procedures过程(可选地返回一个值)。过程中定义的变量是该过程私有的,这意味着它们不可用于其他代码。对于函数和子例程来说,情况并非如此。

过程也称为过程块。

  • 函数(返回值)。
  • 子例程(不返回值)。

建议使用过程Procedures,因为这可以简化控制变量范围的任务。然而,在现有代码中,可能还会看到函数和子例程,并且能够识别它们非常有用。以下列表显示了所有这些形式的代码的外观。

procedure

label(args) scopekeyword {
    zero or more lines of code 
    QUIT returnvalue
    }

或者

label(args) scopekeyword {
    zero or more lines of code 
    }

label 是过程的标识符。

args 是可选的以逗号分隔的参数列表。即使没有参数,也必须包含括号。

可选的scopekeyword是以下之一(不区分大小写):

  • Public - 如果指定 Public,则该过程是公共的,并且可以在例程本身之外调用。
  • Private(过程的默认值)。如果指定 Private,则该过程是私有的,只能由同一例程中的其他代码调用。如果尝试从另一个例程访问该过程,则会发生<NOLINE> 错误。

returnvalue 是一个可选的、要返回的单个值。要返回值,必须使用 QUIT 命令。如果不想返回值,可以省略 QUIT 命令,因为大括号表示过程结束。

过程可以将变量声明为公共变量,尽管这种做法并不被认为是现代的程序推荐。为此,可以在紧邻范围关键字之前的方括号中包含以逗号分隔的变量名称列表。

function

label(args) scopekeyword
    zero or more lines of code 
    QUIT optionalreturnvalue

args 是可选的以逗号分隔的参数列表。即使没有参数,也必须包含括号。

可选的作用域关键字是 Public(函数的默认值)或 Private

subroutine

label(args) scopekeyword
    zero or more lines of code 
    QUIT

args 是可选的以逗号分隔的参数列表。如果没有参数,则括号是可选的。

可选的作用域关键字是 Public(子例程的默认值)或 Private

下表总结了例程、子例程、函数和过程之间的差异:

  Routine Subroutine Function Procedure
可以接受参数 no yes yes yes
可以返回值 no no yes yes
可以在例程之外调用(默认情况下) yes yes yes no
其中定义的变量在代码执行完成后可用 yes yes yes 取决于变量的性质

变量可用性和范围有更多详细信息。

注:在日常用法中,通常称呼“子例程subroutine”可以表示过程procedure、函数function或子例程subroutine

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