是否可以将数组作为d3选择函数的参数传递?我试过这样做,似乎生成了一条错误消息:
B14坏堆栈描述符
如果您尝试将数组作为函数的参数传递,则会显示错误消息。这引出了两个问题。
1)是否可以将数组作为d3 pick中的参数传递?
2)如果无法直接传递数组,是否有某种解决方法可以让人们获得相同的结果?
答案 0 :(得分:1)
问题中的术语有点含糊不清,但试试这个:
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间接传递它: 共同阵营(5) ARRAY(1)=" FOO" 致电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
答案 1 :(得分:1)
是的,你可以......
创建程序“MainProgram”
Program MainProgram
MyArray = ""
MyArray<1> = "ParameterValue2"
MyArray<2> = "ParameterValue2"
call MySubroutine(MyArray)
Stop
创建子程序“MySubroutine”
Subroutine MySubroutine(PassedParam)
for x = 1 to dcount(PassedParam,@AM)
print PassedParam<x>
next x
return
子程序需要编译和编目。