MUMPS中无前置函数名的^的含义及相关调用咨询
MUMPS例程调用相关问题解答
1. DO ^PRCTQUES的调用对象是什么?
DO ENYA^PRCTQUES是明确调用PRCTQUES例程中的ENYA标签。DO ^PRCTQUES则是调用PRCTQUES例程的同名入口标签,即例程中名为PRCTQUES的标签。如果例程内存在该标签,就执行其代码;若不存在,标准MUMPS行为会报错(提示标签未找到)。
2. 例程开头全为注释时,执行DO ^PRCTQUES的作用?
当PRCTQUES例程内容全为注释时:
PRCTQUES ; comment ;;comment ; MOAR comment ;
执行DO ^PRCTQUES不会执行任何实际业务代码,因为所有行都是注释,无有效可执行语句。它不会主动触发编译(编译通常在例程保存时完成),仅会无操作地完成调用流程,不会报错。
3. 例程以非同名标签ZOOT开头时,执行DO ^PRCTQUES的结果?
如果例程内容如下:
ZOOT (code) Q
执行DO ^PRCTQUES会报错,因为该命令目标是调用PRCTQUES例程中与例程同名的PRCTQUES标签,但例程内仅存在ZOOT标签,不存在目标标签。这种写法属于不良风格,违背了MUMPS例程的常规命名约定,会导致调用逻辑混淆,大幅提升维护成本。
内容的提问来源于stack exchange,提问作者Tony Ennis
相关产品推荐
相关产品推荐

