美文网首页
第十九章 ObjectScript - 执行例程

第十九章 ObjectScript - 执行例程

作者: Cache技术分享 | 来源:发表于2023-09-05 07:53 被阅读0次

    第十九章 ObjectScript - 执行例程

    执行例程

    执行例程时,使用DO命令,如下所示:

     do ^routinename
    

    要执行一个过程、函数或子程序(不访问其返回值),可以使用以下命令:

     do label^routinename
    

     do label^routinename(arguments)
    

    要执行过程、函数或子例程并引用其返回值,可以使用$$label^routinename$$label^routinename(参数)形式的表达式。例如:

     set myvariable=$$label^routinename(arguments)
    

    在所有情况下,如果标签位于同一个例程中,则可以省略插入符号和例程名称。例如:

     do label
     do label(arguments)
     set myvariable=$$label(arguments)
    

    在所有情况下,传递的参数可以是文字值、表达式或变量名。

    New 命令

    IRIS提供了另一种机制,使能够控制例程中变量的作用域:NEW命令。此命令的参数是一个或多个变量名,以逗号分隔的列表表示。变量必须是公共变量,不能是Global

    该命令为变量建立一个新的有限上下文(可能已经存在,也可能不存在)。例如,考虑下面的例程:

     ; demonew 
     ; routine to demo NEW
     NEW var2
     set var1="abc"
     set var2="def"
     quit
    

    运行完这个例程后,变量var1可用,变量var2不可用,如下例所示:

    TESTNAMESPACE>do ^demonew
     
    TESTNAMESPACE>write var1
    abc
    TESTNAMESPACE>write var2
     
    write var2
    ^
    <UNDEFINED> *var2
    

    如果该变量在使用NEW之前已经存在,那么在NEW作用域结束后,该变量仍然存在,并保留其先前的值。例如,考虑下面的Terminal会话,它使用前面定义的例程:

    TESTNAMESPACE>set var2="hello world"
     
    TESTNAMESPACE>do ^demonew
     
    TESTNAMESPACE>write var2
    hello world
    

    相关文章

      网友评论

          本文标题:第十九章 ObjectScript - 执行例程

          本文链接:https://www.haomeiwen.com/subject/zkxhvdtx.html