# 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

* [Let](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Let.htm)

* [Set](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Set.htm)