REXX - Uso tra parentesi quadre
Domanda
Sono abbastanza nuovo da rexx, roba davvero base qui, voglio ottenere rapidamente l'ultimo elemento di un array.
Apri oggetto Rexx 4.2.0 per Windows:
test.0=2
test.1="foo"
test.2="bar"
say test.[test.0]
.
==> output come ricercato:
bar
.
.
La mia ipotesi facile è che l'interprete rexx oggetto aperto è al lavoro.Le staffe quadre non possono essere utilizzate con Rexx su Z / OS.
1st roba che mi è venuta in mente (non è rtfm):
say test.test.0
say test.(test.0)
.
==> output non buono:
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'è altri usi delle parentesi quadre? Perché provengono da C / Java / Python sto andando per test.test.0 o test. (Test.0) Come un manichino?
non riesce a trovare ulteriori informazioni sullo staffe square Uso in rexx di questo: # Reginald's TailEspressione
Allora sotto Z / OS per ora sono bloccato con:
temp=test.0
say test.temp
. Soluzione
Hai già trovato la risposta alla tua domanda.
L'unico modo in Mainframe Rexx (z / OS, Z / VSE, Z / VM) è come codificato sopra:
..temp=test.0 say test.temp
La migliore documentazione per la comprensione di ciò che il rexx interprete può essere trovato nel riferimento Z / OS TSO / E Rexx in simboli composti (link v2.1). Descrive perché test.Test.0 non funzionerà, a causa di come l'interprete gestisce la linea; In questo caso, è alla ricerca di un test STEM.TEST.0.
Nota che puoi codificare
test.test.0 = 0
.
E avresti un test stelo valido.Test.0 (anche se probabilmente inutile nella maggior parte dei casi).
Il prossimo argomento nel collegamento discute le variabili staminali, che ha anche molte informazioni utili.
Consiglio vivamente di leggere sia il RIFERIMENTO Z / OS TSO / E REXX e GUIDA DELL'UTENTE Z / OS TSO / E REXX (entrambi i collegamenti V2.1).
.
Altri suggerimenti
Altre alternative rexx pure (non oggetto):
interpret "say test." || test.0
.
o
say value("test." || test.0)
. L'interprete rexx predefinito su z / OS è classico rexx, non oorexx.Oorexx non è stato portato a z / os.
Tenere presente che (in z / OS, almeno) la variabile '.0' non viene aggiornata automaticamente.Ad esempio .:
list.1 = 17
list.2 = 12
say 'List.0 is' list.0
.
Dare "List.0", che è il valore predefinito (il nome della variabile) per una variabile inizializzata.