문제
나는 Rexx에게 아주 새로운 것, 정말로 기본적인 것들이 여기에 배열의 마지막 요소를 빨리 얻고 싶습니다.
Windows 용 REXX 4.2.0 오브젝트 :
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에서 오는 이유는 Test.test.0 또는 테스트를 위해 가고 있습니다. (test.0) 더미처럼?
그래서 z / OS에서 지금은 멈추고 있습니다 :
temp=test.0
say test.temp
. 해결책
이미 귀하의 질문에 대한 답변을 발견했습니다.
메인 프레임 REXX (z / OS, Z / VSE, Z / VM)의 유일한 방법은 위에 코딩 된 것처럼 다음과 같습니다.
.temp=test.0 say test.temp
REXX 인터프리터가 수행하는 것을 이해하기위한 최상의 문서는 복합 기호 (v2.1 링크). Interprecter가 줄을 처리하는 방법 때문에 test.test.0이 작동하지 않는 이유를 설명합니다. 이 경우 줄기 test.test.0을 찾고 있습니다.
코드
를 코드 할 수 있습니다test.test.0 = 0
.
그리고 당신은 유효한 줄기 test.test.0 (대부분의 경우 쓸모 없을 것)을 가질 것입니다.
링크의 다음 주제는 많은 유용한 정보도 제공하는 줄기 변수에 대해 설명합니다.
z / OS TSO / E REXX 참조 및 z / OS TSO / E REXX 사용 설명서 (v2.1 링크 모두)