Ir para conteúdo principal Pular para conteúdo complementar

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') ;

Saiba mais

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!