Expansion $ comprenant des paramètres
Les expansions $ admettent l'utilisation de paramètres. Cela permet d'avoir une évaluation dynamique de la variable.
La variable créée pour être utilisée dans l'expansion doit contenir des paramètres formels. Un paramètre formel est un espace réservé pour l'entrée de l'évaluation et il est écrit avec un signe dollar : $1, $2, $3. Le chiffre indique le numéro de paramètre.
Lors de l'utilisation de la variable, les paramètres réels doivent être indiqués dans une liste et séparés par des virgules.
Exemples : Paramètres dans des expansions de signe dollar
Pour définir une multiplication entre deux nombres, vous pouvez écrire :
Set MUL= $1*$2 ;
Cela indique que $1 et $2 doivent être multipliés l'un par l'autre. Si cela est utilisé, cette variable doit avoir une expansion dollar avec des valeurs pour $1 et pour $2 insérées dans l'expression :
Set X= $( MUL(3,7) ) ;
Les valeurs (3 et 7) sont des paramètres réels qui remplacent $1 et $2 dans l'expansion. L'expansion est effectuée avant l'analyse et l'exécution de l'instruction Set, ce qui signifie que l'analyseur de script voit ce qui suit :
Set X= 3*7 ;
Ainsi, la variable X sera affectée à la valeur de chaîne suivante : 3*7.
Si vous utilisez une instruction Let au lieu de l'instruction Set :
Let X= $( MUL(3,7) ) ;
L'analyseur verra ce qui suit :
Let X= 3*7 ;
Ici, une évaluation sera effectuée et X sera affecté à la valeur numérique 21.
Nombre de paramètres
Si le nombre de paramètres formels dépasse le nombre de paramètres réels, seuls les paramètres formels correspondant à des paramètres réels sont développés. Si le nombre de paramètres réels dépasse le nombre de paramètres formels, les paramètres réels superflus sont ignorés.
Exemples : Paramètres formels par rapport aux paramètres réels
Set MUL= '$1*$2' ;
Set X= $(MUL) ; // returns $1*$2 in X
Set X= $(MUL(10)) ; // returns 10*$2 in X
Let X= $(MUL(5,7,8)) ; // returns 35 in X
Le paramètre $0
Le paramètre $0 renvoie le nombre de paramètres effectivement transmis par un appel.
Exemple : Introduction au traitement des erreurs
Set MUL= If($0=2, $1*$2, 'Error') ;