質問
私はRexxにかなり新しい、本当に基本的なものはここで、私はすぐにアレイの最後の要素を取得したいです。
Windows用オブジェクトREXX 4.2.0:
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 / OSでは、私は:
temp=test.0
say test.temp
. 解決
あなたはすでにあなたの質問に対する答えを見つけました。
メインフレームREXX(z / OS、Z / VSE、Z / VM)の唯一の方法は、上記の符号化されています。
.temp=test.0 say test.temp
REXXインタプリタが行っているのかを理解するための最良の文書は、複合シンボル(v2.1リンク)。インタプリタが行を処理する方法のため、Test.Test.0が機能しない理由を説明します。この場合、それはStem Test.Test.0を探しています。
コード
をコーディングできることに注意してくださいtest.test.0 = 0
.
とあなたは有効なSTEM TEST.TEST.0を持つことになります(ほとんどの場合はおそらく役に立たないものがあります)。
リンク内の次のトピックでは、幹変数について説明しています。これには多くの有用な情報があります。
z / OS TSO / E REXXリファレンス http://pic.dhe.ibm.com/infocenter/zos/v2r1/topic/com.ibm.zos。 v2r1.ikjc300 / toc.htm "rel=" nofollow noreferrer "> z / OS TSO / E REXXユーザーガイド(両方のv2.1リンク)。
他のヒント
その他の純粋な(オブジェクト以外の)REXXの選択肢:
interpret "say test." || test.0
.
または
say value("test." || test.0)
. z / OS上のデフォルトのREXXインタプリタは、OOREXXではなく古典的なREXXです。oorexx は、z / OSに移植されていません。
(z / OS、少なくとも) '.0'変数は自動的には更新されません。e.g。:
list.1 = 17
list.2 = 12
say 'List.0 is' list.0
.
は 'list.0'を与えます。これは、初期化変数のデフォルト値(変数名)です。