第十八章 ObjectScript - 使用例程-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录

第十八章 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

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

 RoutineSubroutineFunctionProcedure
可以接受参数noyesyesyes
可以返回值nonoyesyes
可以在例程之外调用默认情况下yesyesyesno
其中定义的变量在代码执行完成后可用yesyesyes取决于变量的性质

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

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6