腮腺炎句法冲突

时间:2011-03-14 12:38:36

标签: mumps

我正在学习腮腺炎语言,而分析代码却产生了疑问

B %%与%% B之间有什么区别。

但参考文档我只看到%% B格式的语法,但在他们使用的代码中   乙%%

的BHA

3 个答案:

答案 0 :(得分:4)

%前缀是一种约定。它对M(UMPS)解释器没有任何意义,但对程序员也没有意义。通常%变量是“临时”或临时变量,不应该用于任何超过一行或两行代码的变量。 e.g。

for %ln=1:1:maxNum do ImportantThing(%ln)  ; loop over lines 1 through maxNum

在普通代码中,您将声明(新)一个变量并正确使用它,但在引入“插件”代码时,这种情况很常见,例如某些EHR应用程序的“预约患者预约”编程挂钩。

答案 1 :(得分:3)

允许使用“%%”在变量名前面或结尾。我不知道在MUMPS变量名中使用“%'s”有特殊意义,但它是一种常见的“约定”。在这里推测,但我注意到$,^,&当部分MUMPS变量名称和“%”位于ascii值和键盘位置的所有三个附近时,都具有特殊含义。

答案 2 :(得分:1)

计划,全局

在标准MUMPS系统中,有一个MGR UCI,系统和实用程序驻留在其中。如果程序名称以“%”开头,则可以从其他UCI访问,实用程序的名称以“%”开头,例如, “%STA”(作业状态),“%GE”(全局编辑)等。只有MGR UCI中的程序才能以“%”开头。

此外,可以从其他UCI访问以“%”开头的全局变量,它位于MGR UCI中。

因此,使用“%”作为程序或全局的第一个字符是系统的一部分(或者可以说是语言)。

<强>当地人

MUMPS是一个非常古老的东西,原始语言没有本地变量支持(所有子程序和主程序共享一个公共命名空间)。无论如何,用户程序也可以调用其他程序,实用程序:DO FUNCT ^%UTILPRG。按照惯例,实用程序使用以“%”开头的变量名,因此它们不会与用户程序的变量冲突。

因此,使用“%”作为局部变量的第一个字符,只是一个约定,但它在实用程序中使用。