使用参数进行货币符号扩展
参数可用于货币符号扩展。这使得对变量进行动态评估成为可能。
为在扩展中使用而创建的变量必须包含形式参数。形式参数是评估输入的占位符,并用美元符号书写: $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') ;