当前位置: 首页 > news >正文

第十九章 ObjectScript - 执行例程

文章目录

  • 第十九章 ObjectScript - 执行例程
  • 执行例程
  • New 命令

第十九章 ObjectScript - 执行例程

执行例程

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

 do ^routinename

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

 do label^routinename

 do label^routinename(arguments)

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

 set myvariable=$$label^routinename(arguments)

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

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

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

New 命令

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

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

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

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

TESTNAMESPACE>do ^demonewTESTNAMESPACE>write var1
abc
TESTNAMESPACE>write var2write var2
^
<UNDEFINED> *var2

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

TESTNAMESPACE>set var2="hello world"TESTNAMESPACE>do ^demonewTESTNAMESPACE>write var2
hello world
http://www.lryc.cn/news/156176.html

相关文章:

  • Podman安装与使用
  • C++ 嵌套循环
  • 锁( ReentrantLock,Synchronized)
  • 主频计算-架构真题(二十三)
  • docker安装redis实操记录
  • MobaXterm 突破14个session限制
  • 使用Redisson实现高并发抢红包
  • 【网络编程】TCP/IP协议(互联网的基石)
  • 【VS Code插件开发】自定义侧边栏、视图(六)
  • lv3 嵌入式开发-8 linux shell脚本函数
  • 国际版阿里云腾讯云免费开户:服务器怎样转移
  • 区块链实验室(20) - FISCO控制台连接到指定的节点
  • 网络渗透day10-工具和技术
  • SSE 和 WebSocket 应用
  • mac帧 arp
  • java面试题-Redis相关面试题
  • 你用过 Maven Shade 插件吗?
  • Android 后台启动Activity适配
  • 使用element-ui中的el-table回显已选中数据时toggleRowSelection报错
  • Ubuntu18.04系统下通过ROS控制Kinova真实机械臂-多种实现方式
  • 聊聊如何玩转spring-boot-admin
  • rocky(centos) 安装redis,并设置开机自启动
  • Flask狼书笔记 | 06_电子邮件
  • ChatGPT追祖寻宗:GPT-1论文要点解读
  • 回归拟合 | 灰狼算法优化核极限学习机(GWO-KELM)MATLAB实现
  • Mysql JSON
  • 使用Vue + axios实现图片上传,轻松又简单
  • C# 中什么是重写(子类改写父类方法)
  • 【Leetcode-面试经典150题-day22】
  • LDAP服务器如何重启