是否可以将数组作为参数传递给 d3 pick 中的函数?我试过这样做,它似乎会生成一条错误消息:
B14 错误堆栈描述符
如果您尝试将数组作为函数的参数传递,则会出现错误消息。这让我想到了两个问题。
1)甚至可以在 d3 pick 中将数组作为参数传递吗?
2)如果不能直接传递数组,是否有某种解决方法可以让人们获得相同的结果?
是否可以将数组作为参数传递给 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
是的你可以...
创建一个程序“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
子程序需要编译和编目。