我对rexx很陌生,这里是非常基本的东西,我想快速获取数组的最后一个元素。
打开对象Rexx 4.2.0 for Windows:

test.0=2
test.1="foo"
test.2="bar"
say test.[test.0]

==>按需输出:
bar

我的简单猜测是open object rexx解释器正在工作。方括号不能与z/OS上的Rexx一起使用。
我想到的第一件事(不是rtfm):
say test.test.0
say test.(test.0)

==>输出不好:
TEST.TEST.0
    5 *-* say test.(test.0)
Error 16 running Test.REX line 5:  Label not found
Error 16.1:  Label "SYNTAX" not found

方括号还有其他用法吗?
为什么来自C/Java/Python,我要进行测试。测试0或测试(测试0)像一个傀儡?
在rexx中找不到关于方括号用法的更多信息:#Reginald's tail expression
因此,在z/OS下,我现在只能坚持:
temp=test.0
say test.temp

最佳答案

你已经找到了你问题的答案。
大型机rexx(z/os、z/vse、z/vm)下的唯一方法是按照上面的代码:

temp=test.0
say test.temp

了解rexx解释器正在做什么的最佳文档可以在Compound Symbols下的z/os tso/erexx参考中找到(v2.1链接)。它描述了test.test.0不工作的原因,因为解释器是如何处理行的;在本例中,它正在寻找一个stem test.test.0。
注意你可以编码
test.test.0 = 0

你会得到一个有效的stem test.test.0(尽管在大多数情况下可能没用)。
链接中的下一个主题讨论stem变量,它也有很多有用的信息。
我强烈建议同时阅读z/OS TSO/E REXX Referencez/OS TSO/E REXX User's Guide(都是v2.1链接)。

关于windows - Rexx-方括号用法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25057337/

10-11 00:43