# 使用参数进行货币符号扩展

参数可用于货币符号扩展。这使得对变量进行动态评估成为可能。

为在扩展中使用而创建的变量必须包含形式参数。形式参数是评估输入的占位符，并用美元符号书写： `$1`、`$2`、`$3`。数字表示参数编号。

当使用变量时，实际参数应在以逗号分隔的列表中显示。

## 示例：美元符号扩展中的参数

如果要定义两个数字之间的乘法，可以编写：

```
Set MUL= $1*$2 ;
```

这就定义了 `$1` 和 `$2` 应该彼此相乘。使用时，此变量必须是用插入表达式的 `$1` 和 `$2` 的值展开的美元：

```
Set X= $( MUL(3,7) ) ;
```

这些值（`3` 和 `7`）是替代表达式中 `$1` 和 `$2` 的实际参数。扩展是在分析和执行 Set 语句之前进行的，这意味着脚本解析器会看到以下内容：

```
Set X= 3*7 ;
```

因此，变量 `X` 将被分配字符串值：`3*7`。

如果使用 `Let` 而非 `Set` 语句：

```
Let X= $( MUL(3,7) ) ;
```

解析器将看到以下内容：

```
Let X= 3*7 ;
```

此处将进行评估，并且 X 将被分配数值 21。

## 参数数目

如果形式参数的数量超过实际参数数量，只有与实际参数相对应的形式参数才会被扩展。如果实际参数超过形式参数，多余的实际参数将会被忽略。

### 示例：形式参数与实际参数

```
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
```

## $0 参数

参数 $0 返回通过调用实际传递的参数数量。

### 示例：如何引入错误处理

```
Set MUL= If($0=2, $1*$2, 'Error') ;
```

## 了解详情

* [Let](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Let.htm)

* [Set](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Set.htm)