我对Rexx非常陌生,这里非常基本的东西,我想快速得到数组的最后一个元素。
打开对象Rexx 4.2.0用于Windows:
test.0=2
test.1="foo"
test.2="bar"
say test.[test.0]需要的==>输出:
bar我很容易猜到,Object解释器正在工作。方括号不能与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,我要进行test.test.0或者像一个虚拟的test.(test.0)?
在Rexx中找不到更多关于方括号使用的信息,只有以下内容:雷金纳德的尾巴表情
因此,在z/OS下,我现在被困住了:
temp=test.0
say test.temp发布于 2014-07-31 16:08:58
你已经找到了你问题的答案。
在大型机REXX (z/OS、z/VSE、z/VM)下,唯一的方法是像上面编写的那样:
temp=test.0 say test.temp
了解REXX解释器正在做什么的最佳文档可以在复合符号 (V2.1链接)下的z/OS /E引用中找到。它描述了test.test.0无法工作的原因,因为解释器是如何处理行的;在本例中,它是在查找Stemtest.test.0。
请注意,您可以编写
test.test.0 = 0并且您将有一个有效的茎测试.test.0(尽管在大多数情况下可能没用)。
链接中的下一个主题将讨论茎变量,这些变量也有很多有用的信息。
我强烈建议阅读z/OS TSO/E REXX参考和z/OS TSO/E REXX用户指南 (都是V2.1链接)。
发布于 2014-07-31 16:12:36
其他纯(非对象) Rexx替代品:
interpret "say test." || test.0或
say value("test." || test.0)发布于 2014-07-31 11:48:02
z/OS上默认的Rexx解释器是经典Rexx,而不是OORexx。OORexx 没有被移植 to z/OS。
https://stackoverflow.com/questions/25057337
复制相似问题