作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在最近的项目中致力于 MUMPS。我有一个关于裸指标的问题。我对例程和裸全局引用感到困惑。
任何人都可以帮助我理解例程和裸指标之间的区别吗?例程的语法看起来与裸指标的语法非常相似。
最佳答案
我不确定我是否完全理解您的问题,但我怀疑您指的是 Routine 和 Global 引用都以插入符号 (^) 开头的事实。
例程使用插入符来区分例程和当前例程中的标签。例如:
D COMPUTATION ; executes the COMPUTATION label in the current routine
D ^COMPUTATION ; executes the COMPUTATION routine
D SUBCOMP^COMPUTATION ; executes the SUBCOMP label in the COMPUTATION routine.
对于变量,插入符号表示它是全局变量而不是局部变量。无论您是否使用裸引用都是这种情况(这是对您的问题进行更多澄清的地方,因为据我所知,裸引用没有区别)。当然,不同之处在于,对于裸引用,您可以删除变量名,以及全局变量的最后一个下标。例如:
S ^MYGLOB(1,1)="one"
S ^MYGLOB(1,2)="two"
相当于
S ^MYGLOB(1,1)="one"
S ^(2)="two" ;naked, ewww
综上所述,我强烈建议不要使用裸引用。它们旨在在从命令提示符输入代码时节省时间,但在必须维护的代码中非常危险。例如,如果在上面的两行代码之间插入对 ^OTHERGLOB 的引用,则 ^(2) 现在将引用 ^OTHERGLOB(2),而不是 ^MYGLOB(1,2)。更不用说,阅读起来很痛苦。
关于mumps - 套路和裸全局指标的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3922395/
我是一名优秀的程序员,十分优秀!