首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过引用过程传递全局或进程私有全局。

如何通过引用过程传递全局或进程私有全局。
EN

Stack Overflow用户
提问于 2014-05-06 15:30:52
回答 2查看 306关注 0票数 1

假设我有CachéObjectScript过程,它期望接收by引用数组参数:

代码语言:javascript
复制
TotalArray(Arr)
 S Total=0
 S K=""
 F {
  S K=$O(Arr(K))
  Q:K=""

  S Total=Total+Arr(K)
 }
 Q Total

我可以使用点语法引用常规数组来调用该过程:

代码语言:javascript
复制
S A(1)=5
S A(2)=10
W $$TotalArray(.A)

但是,当我尝试使用全局引用时,点语法会出现一个语法错误:

代码语言:javascript
复制
S ^A(0)=5
S ^A(1)=10
W $$TotalArray(.^A)

通过引用ObjectScript过程传递全局数组的正确方法是什么?我还希望能够通过进程私有全局( ^||Array约定)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-07 02:02:48

如果你像布兰登建议的那样间接地使用它:

代码语言:javascript
复制
TotalArray(ArrName)
 S Total=0
 S K=""
 F {
  S K=$O(@ArrName@(K))
  Q:K=""

  S Total=Total+@ArrName@(K)
 }
 Q Total

然后你就这样叫它

代码语言:javascript
复制
W $$TotalArray("^A")

甚至是

代码语言:javascript
复制
W $$TotalArray("^A(""someIndex"")")
票数 2
EN

Stack Overflow用户

发布于 2014-05-06 17:40:05

这是不可能的你可以

  1. 传递全局名称,并通过间接访问它,或
  2. 将全局变量合并为局部变量(如果足够小的话),并通过引用传递。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23498931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档