2011-03-18 82 views

回答

1

这就是所谓的条件SET。如果它们为空,则将%B或%E变量设置为相应的变量。

3

假设套解决为S:%B=""(DTM和Cache似乎并没有比较值时,默认允许隐式空;有人请评论,如果我错了),

set:%B="" %B="@1" set:%E="" %E="@999",相当于

if %B="" set %B="@1" 
if %E="" set %E="@999" 

对于%B和%E变量中的每一个,如果它是空字符串,则分别分配文字字符串值“@ 1”和“@ 999”。像SET,WRITE,DO等命令之后的冒号(:)表示它紧跟冒号后面的语句。

至于语法,它只是和程序员一样丑陋。

5

由于行:

S:%B= %B="@1" S:%E= %E="@999" 

实际上不是流行性腮腺炎代码,我同意其他的应答者有可能已经将代码粘贴到这个论坛的一个问题。

,你打算发布的最有可能的腮腺炎代码:

S:%B="" %B="@1" S:%E="" %E="@999" 

有完整的解释,这是在同一线上的两个MUMPS命令:

S:%B="" %B="@1" 
S:%E="" %E="@999" 

和使用非简洁流行性腮腺炎,将是:

SET:%B="" %B="@1" 
SET:%E="" %E="@999" 

或者用英文,这些命令检查一个变量,如果它是doe没有一个对于这个程序有意义的值,赋予(SET)一个默认值给该变量。

对于名为%B的变量,当满足保护条件(%B =“”)时,会分配默认字符串值“@ 1”。同样,对于名为%E的变量,如果变量%E等于空字符串,则会分配默认字符串值“@ 999”。

MUMPS中的“@”字符用于将值后期绑定到变量(在语言中称为Indirection),但它后面必须跟一个变量的名称。 纯数字值(如“1”或“999”)不是变量的名称,因此这些默认值很可能不是间接引用另一个值。