パラメータを使用したドル記号展開
ドル記号展開ではパラメータを使用できます。これにより、変数の動的評価が可能になります。
拡張で使用するために作成された変数には、仮パラメータが含まれている必要があります。正式なパラメータは、評価への入力のプレースホルダーであり、ドル記号で記述されます: $1、$2、$3。番号はパラメータ番号を示します。
変数を使用する場合、実際のパラメータはコンマ区切りのリストに記載する必要があります。
例: ドル記号展開のパラメータ
2 つの数値間の乗算を定義する場合は、次のように記述できます。
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 が割り当てられます。
Set ステートメントの代わりに Let を使用する場合:
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') ;