你能让我知道下面这句话的意思吗?
S:%B= %B="@1" S:%E= %E="@999"发布于 2011-06-15 06:53:30
从这行开始:
S:%B= %B="@1" S:%E= %E="@999"不是真正的MUMPS代码,我同意其他回答者的看法,可能是在将代码粘贴到这个论坛时出现了问题。
你打算发布的最有可能的MUMPS代码是:
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"或者在英语中,这些命令检查一个变量,如果该变量没有对该程序有意义的值,则为该变量分配(设置)一个默认值。
对于名为%B的变量,当满足保护条件(%B="")时,将分配默认字符串值"@1“。同样,对于名为%E的变量,如果变量%E等于空字符串,则会分配默认字符串值"@999“。
MUMPS中的"@“字符用于值与变量的后期绑定(在语言中称为间接),但后面必须跟一个变量的名称。诸如"1“或"999”之类的纯数字值不是变量的名称,因此这些默认值不太可能间接引用另一个值。
发布于 2011-06-13 23:20:59
假设集合解析为S:%B="" (DTM和Cache在比较值时,默认情况下似乎不允许隐式null;如果我错了,请某人评论),
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等命令后面的冒号(:)以紧跟在冒号后面的语句为条件。
至于语法,它就像程序员做的那样丑陋。
发布于 2011-03-21 17:17:10
这就是所谓的条件SET。如果%B或%E变量为空,则将它们设置为相应的变量。
https://stackoverflow.com/questions/5349294
复制相似问题