题
我对rexx非常新的,真的是基本的东西,我想快速获取阵列的最后一个元素。
打开对象rexx 4.2.0 for Windows:
test.0=2
test.1="foo"
test.2="bar"
say test.[test.0]
.
==>输出如想要:
bar
.
我的简单猜测是开放对象rexx解释器在工作。方括号不能与Z / OS上的REXX一起使用。
1的东西来到我的脑海里(没有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我要为test.test.0或测试。(test.0)像虚拟?
找不到关于rexx的方括号用法的更多信息,而不是这个:#reginald的尾巴表达式
所以在z /操作系统下我被困:
temp=test.0
say test.temp
. 解决方案
您已经找到了问题的答案。
大型机Rexx(z / OS,z / vse,z / Vm)的唯一方法在于上面编码:
.temp=test.0 say test.temp
了解在复合符号(v2.1链接)。它描述了Test.Test.0的原因不起作用,因为解释器如何处理该行;在这种情况下,它正在寻找一个step test.test.0。
请注意,您可以代码
test.test.0 = 0
.
,您将有一个有效的step test.test.0(尽管在大多数情况下可能没用)。
链接中的下一个主题讨论了茎变量,也有很多有用的信息。
我强烈建议读取 z / os tso / e rexx引用和 z / os tso / e rexx用户指南(v2.1链接)。
其他提示
其他纯(非对象)rexx替代品:
interpret "say test." || test.0
.
或
say value("test." || test.0)
. z / OS上的默认rexx解释器是Classic Rexx,而不是Oorexx。Oorexx 尚未移植到z / os。
牢记(在z / OS中,至少)“.0”变量不会自动更新。例如:
list.1 = 17
list.2 = 12
say 'List.0 is' list.0
.
将给出'list.0',这是初始化变量的默认值(变量的名称)。
不隶属于 StackOverflow