Pregunta

Soy bastante nuevo para rexx, cosas realmente básicas aquí, quiero obtener el último elemento de una matriz rápidamente.

Abrir objeto Rexx 4.2.0 para Windows:

test.0=2
test.1="foo"
test.2="bar"
say test.[test.0]

==> Salida según looked:

bar


Mi conyección fácil es que el intérprete de Open Object Rexx está en el trabajo.Los soportes cuadrados no se pueden usar con Rexx en Z / OS.

1st cosas que vinieron a mi mente (no rtfm):

say test.test.0
say test.(test.0)

==> Salida no es buena:

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

¿Hay otros usos de los corchetes? ¿Por qué venir de C / Java / Python, voy por test.test.0 o prueba? (Test.0) como un maniquí?

No puedo encontrar más información sobre el uso de corchetes cuadrados en Rexx que esto: # Reginald's Tailexpresión

Sobre la Z / OS por ahora estoy atascado con:

temp=test.0
say test.temp

¿Fue útil?

Solución

Ya ha encontrado la respuesta a su pregunta.

La única forma en el mainframe rexx (z / OS, z / vse, z / vm) es a medida que codificó anteriormente:

temp=test.0
say test.temp

La mejor documentación para comprender lo que está haciendo el intérprete Rexx se puede encontrar en la referencia Z / OS TSO / E REXX en Símbolos compuestos (enlace v2.1). Describe por qué Test.test.0 no funcionará, debido a cómo el intérprete maneja la línea; En este caso, está buscando una prueba de tallo.Test.0.

Nota que podría codificar

test.test.0 = 0

y usted tendrá una prueba de tallo válida.test.0 (aunque probablemente inútiles en la mayoría de los casos).

El siguiente tema en el enlace discute las variables de tallo, que también tiene mucha información útil.

Recomiendo encarecidamente leer tanto el Z / OS TSO / E Rexx Referencia y el Guía del usuario de Z / OS TSO / E REXX (ambos vínculos v2.1).


Otros consejos

Otras alternativas Puras (no objeto) Rexx:

interpret "say test." || test.0

o

say value("test." || test.0)

El intérprete Rexx predeterminado en Z / OS es Classic Rexx, no Oorexx.OOREXX no ha sido portada a z / OS.

Tenga en cuenta que (en z / OS, al menos) la variable '.0' no se actualiza automáticamente.E.G.:

list.1 = 17
list.2 = 12
say 'List.0 is' list.0

dará 'List.0', que es el valor predeterminado (nombre de la variable) para una variable inicializada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top