是否可以在d3 pick中将数组作为函数的参数传递?我尝试这样做,它似乎会生成一条错误消息:
B14错误堆栈描述符
如果您尝试将数组作为函数的参数传递,则会出现错误消息。这使我想到两个问题。
1)甚至有可能在d3 pick中将数组作为参数传递?
2)如果无法直接传递数组,是否有某种解决方法可以使一个人获得相同的结果?
问题中的术语有点模棱两可,但是请尝试以下操作:
DIM ARRAY(5)
ARRAY(1) = "FOO"
CALL MYSUB( ARRAY )
CRT ARRAY(1) ; * should be BAR
END
并在被叫项中:
SUBROUTINE MYSUB( MYARRAY )
DIM MYARRAY()
MYARRAY(1) = "BAR"
RETURN
另一个解决方案是通过Common间接传递它:COMMON ARRAY(5)ARRAY(1)=“ FOO” CALL MYSUB CRT ARRAY(1); *应为BAR END
并在被叫项中:
SUBROUTINE MYSUB
COMMON MYARRAY(5) ; * need to agree
MYARRAY(1) = "BAR"
RETURN
为了避免让每个程序都知道需要多少个元素,请将该代码放在Include项中:
包括项目APP.COMMON:
COMMON ARRAY(5)
* nothing else here unless you have other things going on
主线代码:
INCLUDE APP.COMMON
ARRAY(1) = "FOO"
CALL MYSUB
CRT ARRAY(1) ; * should be BAR
END
并在被叫项中:
SUBROUTINE MYSUB
INCLUDE APP.COMMON
ARRAY(1) = "BAR" ; * need to use same variable declared in the include item
RETURN
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句