Expansão de sinal de dólar usando parâmetros
Os parâmetros podem ser usados em expansões de sinal de dólar. Isso possibilita ter uma avaliação dinâmica da variável.
A variável criada para uso na expansão deve conter parâmetros formais. Um parâmetro formal é um espaço reservado para a entrada na avaliação e é escrito com um sinal de cifrão: $1, $2, $3. O número indica o número do parâmetro.
Ao usar a variável, os parâmetros reais devem ser indicados em uma lista separada por vírgulas.
Exemplos: Parâmetros em expansões de sinal de cifrão
Se você quiser definir uma multiplicação entre dois números, pode escrever:
Set MUL= $1*$2 ;
Isso define que $1 e $2 devem ser multiplicados entre si. Quando usada, essa variável deve ser expandida com valores para $1 e $2 inseridos na expressão:
Set X= $( MUL(3,7) ) ;
Os valores (3 e 7) são os parâmetros reais que substituem $1 e $2 na expansão. A expansão é feita antes que a instrução de conjunto seja analisada e executada, o que significa que o analisador de script vê o seguinte:
Set X= 3*7 ;
Como resultado, a variável X receberá o valor da string: 3*7.
Se você usar um Let no lugar da instrução Set:
Let X= $( MUL(3,7) ) ;
O analisador verá o seguinte:
Let X= 3*7 ;
Aqui, será feita uma avaliação, e X receberá o valor numérico 21.
Número de parâmetros
Se o número de parâmetros formais exceder o número de parâmetros reais, apenas os parâmetros formais correspondentes a parâmetros reais serão expandidos. Se o número de parâmetros reais exceder o número de parâmetros formais, os parâmetros reais excedentes serão ignorados.
Exemplos: Parâmetros formais versus parâmetros reais
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
O parâmetro $0
O parâmetro $0 retorna o número de parâmetros realmente passados por uma chamada.
Exemplo: Como introduzir o tratamento de erros
Set MUL= If($0=2, $1*$2, 'Error') ;