Question

Je suis assez nouveau à Rexx, des trucs vraiment basiques ici, je veux obtenir le dernier élément d'un tableau rapidement.

Ouvrir l'objet REXX 4.2.0 pour Windows:

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

==> SORTIE SE QUE VOU aimé:

bar


My Easy Guess est que l'interprète Open Object Rexx est au travail.Les crochets ne peuvent pas être utilisés avec REXX sur Z / OS.

1ère choses qui me sont venues à mon esprit (pas RTFM):

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

==> la sortie n'est pas bonne:

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

Y a-t-il d'autres usages de crochets? Pourquoi venir de C / Java / Python, je vais pour tester.test.0 ou test. (Test.0) Comme un mannequin?

Vous ne pouvez pas trouver plus d'informations sur l'utilisation des supports carrés à Rexx que ceci: # la queue de Reginaldexpression

Donc sous Z / OS pour l'instant, je suis coincé avec:

temp=test.0
say test.temp

Était-ce utile?

La solution

Vous avez déjà trouvé la réponse à votre question.

Le seul moyen sous Mainframe REXX (Z / OS, Z / VSE, Z / VM) est tel que vous avez codé ci-dessus:

temp=test.0
say test.temp

La meilleure documentation permettant de comprendre ce que l'interprète REXX se trouve dans la référence Z / OS TSO / E REXX sous symboles composés (link v2.1). Il décrit pourquoi Test.Test.0 ne fonctionnera pas, car comment l'interprète gère la ligne; Dans ce cas, il cherche un test de tige.Test.0.

Notez que vous pouvez coder

test.test.0 = 0

Et vous auriez un test de tige valide.Test.0 (bien que probablement inutile dans la plupart des cas).

Le sujet suivant de la liaison traite des variables de tige, qui contient également de nombreuses informations utiles.

Je recommande fortement de lire à la fois le Z / OS TSO / E REXX Référence et le Guide de l'utilisateur TSO / E REXX Z / OS (Liens V2.1).


Autres conseils

Autres alternatives pure (non-objet) REXX:

interpret "say test." || test.0

ou

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

L'interpréteur REXX par défaut sur Z / OS est Classic REXX, pas OOREXX.Oorexx n'a pas été porté à z / OS.

Gardez à l'esprit que (dans z / OS, au moins) la variable '.0' n'est pas automatiquement mise à jour.E.g.:

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

donnera 'list.0', qui correspond à la valeur par défaut (nom de la variable) pour une variable initialisée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top