我对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',这是初始化变量的默认值(变量的名称)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top